Use Case 1: AWS Rekognition¶


Contents¶

I. Setting up AWS¶

II. Working with AWS Rekognition¶

III. Performance Evaluation¶


I. Setting up AWS¶

Import all the necessary libraries

In [ ]:
import boto3
import json
import pandas as pd 
from PIL import Image, ImageDraw, ImageFont
from io import BytesIO
from IPython.display import display
import requests
import zipfile
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import face_recognition
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageOps, ImageEnhance
from botocore.exceptions import NoCredentialsError
from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score

Set up and upload images to AWS

In [ ]:
# Create an S3 client
s3 = boto3.client('s3')
bucket = 'nam-final-exam-1'
s3.create_bucket(Bucket=bucket)
Out[ ]:
{'ResponseMetadata': {'RequestId': '9EW3134WXTAS5EZB',
  'HostId': 'h+X6wfW3y2z3qhasi0SjEysK0M+CleTAJIdZ6Mc776kAT//x0c737N4B7QTLXnPdu6VH2XW5pC8=',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amz-id-2': 'h+X6wfW3y2z3qhasi0SjEysK0M+CleTAJIdZ6Mc776kAT//x0c737N4B7QTLXnPdu6VH2XW5pC8=',
   'x-amz-request-id': '9EW3134WXTAS5EZB',
   'date': 'Mon, 11 Dec 2023 06:55:20 GMT',
   'location': '/nam-final-exam-1',
   'server': 'AmazonS3',
   'content-length': '0'},
  'RetryAttempts': 0},
 'Location': '/nam-final-exam-1'}
In [ ]:
# bucket and region
bucket='nam-final-exam-1'
region='us-east-1'
In [ ]:
# list files in local directory 
dir_name = '2024_students'

def list_jpeg_files(directory):
    """List all JPEG files in the specified directory."""
    jpeg_files = [file for file in os.listdir(directory) if file.lower().endswith(('.jpeg', '.jpg'))]
    return jpeg_files


# Replace 'your_directory_path' with the path to the directory you want to search
directory_path = './2024_students'
jpeg_files = list_jpeg_files(directory_path)

print("Images in the directory:", jpeg_files)
Images in the directory: ['Dongqiao_Tang_aged.jpg', 'Hewei_Shen_aged.jpg', 'Jackson_R_Harper_aged.jpg', 'Wei_Tan.jpg', 'Nathanael_Hunter_Kraus.jpg', 'Benjamin_Pyung-Hwa_Aikens_aged.jpg', 'Helen_Kidane_Haile_aged.jpg', 'Samantha_O_Brien_aged.jpg', 'Yiming_Xu_aged.jpg', 'Manling_Shi_aged.jpg', 'Meghan_O_Malley.jpg', 'Eric_Mayo.jpg', 'Haopeng_Liu.jpg', 'Wei_Tan_aged.jpg', 'Jennifer_Ontiveros-Olivas.jpg', 'Nicholas_J_Sundberg_aged.jpg', 'Patrick_Ryan_Weimaker.jpg', 'Zihe_Liu_aged.jpg', 'Manling_Shi.jpg', 'Amanda_Renner_Gild_aged.jpg', 'George_Basil_Economus.jpg', 'Michelle_Monica_Saikali.jpg', 'Joseph_Macon_Barker.jpg', 'Kaitlyn_R_Vickers_aged.jpg', 'Andrea_Chen.jpg', 'Kyle_John_Wiblishauser.jpg', 'Skylour_Sebastian_Winakur.jpg', 'Logan_Trujillo.jpg', 'Xingyu_Wan.jpg', 'Cole_Ritchey_aged.jpg', 'Jiacheng_Wang_aged.jpg', 'Garhett_William_Sessions_aged.jpg', 'Kendall_Ashley_Hilson_aged.jpg', 'Kayla_Marie_Williams_aged.jpg', 'Kaushik_Rajaram_aged.jpg', 'Latham_Alexander_Weaver_aged.jpg', 'Trinity_Nicole_Elliott_aged.jpg', 'Reid_Powers_Walker_aged.jpg', 'Bingnan_Lei_aged.jpg', 'Andrea_Chen_aged.jpg', 'Savannah_Kayla_Littlejohn_aged.jpg', 'Jash_Sanjaybhai_Vachhani_aged.jpg', 'Elizabeth_G_Higgins_aged.jpg', 'Estefani_Santiago_Gatica_aged.jpg', 'Qin_Miao_aged.jpg', 'Yue_Zhou_aged.jpg', 'Niklas_Jozef_Baldis_aged.jpg', 'Hanshuai_Shi.jpg', 'Edward_Cheongjoun_Hyun_aged.jpg', 'Christopher_Craig_Kenney.jpg', 'Xiyan_Huang.jpg', 'Lauren_Elizabeth_Johnson_aged.jpg', 'Angela_Waszkiewicz.jpg', 'Tianyu_Cui.jpg', 'Jiaming_Zhang_aged.jpg', 'Xiaoya_Luo_aged.jpg', 'Nathalie_Lisa_Friedman_aged.jpg', 'Shenger_Zhou_aged.jpg', 'Jiahua_Wu.jpg', 'Hewei_Shen.jpg', 'Andrew_Dubois.jpg', 'Emmanuel_Thomas_George_Skora.jpg', 'John_William_Null_aged.jpg', 'Bingyu_Li.jpg', 'Jodie_Elizabeth_Brine.jpg', 'Meryl_Criswell_Kaduboski.jpg', 'Amanda_Renner_Gild.jpg', 'Michael_Jason_Vejsiri_aged.jpg', 'Patrick_Ryan_Weimaker_aged.jpg', 'Zihe_Liu.jpg', 'Emmanuel_Thomas_George_Skora_aged.jpg', 'Daniel_Madden_Sheedy_aged.jpg', 'Zaul_Alexander_Perez_aged.jpg', 'Lu_Xing_aged.jpg', 'Niklas_Jozef_Baldis.jpg', 'Kendall_Ashley_Hilson.jpg', 'Shenzhe_Lian_aged.jpg', 'Dillon_Hunter_Aryeh_aged.jpg', 'Nathanael_Hunter_Kraus_aged.jpg', 'Tianyi_Yin_aged.jpg', 'Cole_Ritchey.jpg', 'Bingnan_Lei.jpg', 'Zaul_Alexander_Perez.jpg', 'Max_Koontz.jpg', 'Yiming_Xu.jpg', 'Evan_Anderson_Gilbert.jpg', 'Xiyue_Yu_aged.jpg', 'Cheuk_Yui_Marcus_Chan_aged.jpg', 'Shuzhe_Wang_aged.jpg', 'Helen_Kidane_Haile.jpg', 'Harve_E_Criqui.jpg', 'Khushi_Arya_aged.jpg', 'Anne_M_Perry_aged.jpg', 'Jash_Sanjaybhai_Vachhani.jpg', 'George_Basil_Economus_aged.jpg', 'Mary_Michele_Troise_aged.jpg', 'Samantha_O_Brien.jpg', 'Boyan_Wei_aged.jpg', 'Luying_Huang_aged.jpg', 'Meghan_O_Malley_aged.jpg', 'Alfredo_Enrique_Suarez_aged_aged.jpg', 'Boyu_Zheng.jpg', 'Quinn_Poole.jpg', 'Daniel_Madden_Sheedy.jpg', 'Guangxin_Bao.jpg', 'Tianyi_Chen.jpg', 'Andrew_Dubois_aged.jpg', 'Ryan_Marek_Smith.jpg', 'Dillon_Hunter_Aryeh.jpg', 'Meryl_Criswell_Kaduboski_aged.jpg', 'Chioke_K_Bellamy_aged.jpg', 'Marcus_Cole_cooper.jpg', 'Harve_E_Criqui_aged.jpg', 'Anthony_X_Ayala.jpg', 'Nathalie_Lisa_Friedman.jpg', 'Bintong_Zhai_aged.jpg', 'Quinn_Poole_aged.jpg', 'Logan_Trujillo_aged.jpg', 'Savannah_Kayla_Littlejohn.jpg', 'Christopher_Craig_Kenney_aged.jpg', 'Ryan_Marek_Smith_aged.jpg', 'Bryce_Charles_Drynan_aged.jpg', 'Nicolson_Charles_Panos_aged.jpg', 'Yuchen_Qin_aged.jpg', 'Marcus_Cole_cooper_aged.jpg', 'Xiaoyu_Zong_aged.jpg', 'Shuzhe_Wang.jpg', 'Songlin_Liu.jpg', 'Boyu_Zheng_aged.jpg', 'Ruochen_Bao_aged.jpg', 'Millie_C_Garrett.jpg', 'Chengzhan_Shen.jpg', 'Xiaoyang_Zheng.jpg', 'Allen_Gail_Smith.jpg', 'Reid_Powers_Walker.jpg', 'Jeremy_Brian_Nurding_aged.jpg', 'Qian_Chen.jpg', 'Yutong_Ouyang.jpg', 'Natalie_Weiner_aged.jpg', 'Alfredo_Enrique_Suarez_aged.jpg', 'Edward_Cheongjoun_Hyun.jpg', 'Alicia_Rand_Bodoia.jpg', 'Millie_C_Garrett_aged.jpg', 'Whitney_Joyce_Isbell_aged.jpg', 'Hangfei_Lyu_aged.jpg', 'Angela_Waszkiewicz_aged.jpg', 'Shenzhe_Lian.jpg', 'Shenghao_Yang.jpg', 'Yilin_Wang_aged.jpg', 'Andrew_Lloyd_Loftis_aged.jpg', 'Jennifer_Ontiveros-Olivas_aged.jpg', 'Kaushik_Rajaram.jpg', 'Shenger_Zhou.jpg', 'Yanghua_Zhang_aged.jpg', 'Latham_Alexander_Weaver.jpg', 'Jacob_Philip_Rockaway.jpg', 'Khushi_Arya.jpg', 'Skylour_Sebastian_Winakur_aged.jpg', 'Jiahao_Ma_aged.jpg', 'Yutong_Ouyang_aged.jpg', 'Jeremy_Brian_Nurding.jpg', 'Raleigh_Coolidge_Conway.jpg', 'Andrew_Lloyd_Loftis.jpg', 'Ruochen_Bao.jpg', 'Kaamil_Farooqi.jpg', 'Songlin_Liu_aged.jpg', 'Jiahao_Ma.jpg', 'Garhett_William_Sessions.jpg', 'Hangfei_Lyu.jpg', 'Jackson_R_Harper.jpg', 'Michael_Jason_Vejsiri.jpg', 'Yuchen_Qin.jpg', 'Xiaoya_Luo.jpg', 'Cheuk_Yui_Marcus_Chan.jpg', 'Alfredo_Enrique_Suarez.jpg', 'Qin_Miao.jpg', 'Elizabeth_G_Higgins.jpg', 'Evan_Anderson_Gilbert_aged.jpg', 'Sebastian_Andres_Lopez-Ibanez.jpg', 'Natalie_Weiner.jpg', 'Jax_Francis_Revfi_aged.jpg', 'Shanay_Nimish_Sonawala_aged.jpg', 'Jax_Francis_Revfi.jpg', 'Mengyao_Liu_aged.jpg', 'Kaitlyn_R_Vickers.jpg', 'Jodie_Elizabeth_Brine_aged.jpg', 'Anthony_X_Ayala_aged.jpg', 'Shenghao_Yang_aged.jpg', 'Mary_Martha_Milcoff_aged.jpg', 'Christopher_David_Koontz_aged.jpg', 'Eric_Mayo_aged.jpg', 'Michelle_Monica_Saikali_aged.jpg', 'Kyle_John_Wiblishauser_aged.jpg', 'Xiyan_Huang_aged.jpg', 'Anoush_U_Shah_aged.jpg', 'Xingyu_Wan_aged.jpg', 'Hanshuai_Shi_aged.jpg', 'Lu_Xing.jpg', 'Wentong_Guo.jpg', 'Raleigh_Coolidge_Conway_aged.jpg', 'Yilin_Wang.jpg', 'Dongqiao_Tang.jpg', 'Kayla_Marie_Williams.jpg', 'Mengyao_Liu.jpg', 'Trinity_Nicole_Elliott.jpg', 'Siyu_Lin_aged.jpg', 'Max_Koontz_aged.jpg', 'Shanay_Nimish_Sonawala.jpg', 'Luying_Huang.jpg', 'Bintong_Zhai.jpg', 'Haopeng_Liu_aged.jpg', 'Kaamil_Farooqi_aged.jpg', 'Xiaoyu_Zong.jpg', 'Whitney_Joyce_Isbell.jpg', 'Nicholas_J_Sundberg.jpg', 'John_William_Null.jpg', 'Jiacheng_Wang.jpg', 'Tianyi_Yin.jpg', 'Lauren_Elizabeth_Johnson.jpg', 'Chengzhan_Shen_aged.jpg', 'Estefani_Santiago_Gatica.jpg', 'Alicia_Rand_Bodoia_aged.jpg', 'Boyan_Wei.jpg', 'Jiahua_Wu_aged.jpg', 'Allen_Gail_Smith_aged.jpg', 'Xiaoyang_Zheng_aged.jpg', 'Siyu_Lin.jpg', 'Mary_Michele_Troise.jpg', 'Nicolson_Charles_Panos.jpg', 'Tianyu_Cui_aged.jpg', 'Jiaming_Zhang.jpg', 'Xiyue_Yu.jpg', 'Mary_Martha_Milcoff.jpg', 'Bingyu_Li_aged.jpg', 'Benjamin_Pyung-Hwa_Aikens.jpg', 'Tianyi_Chen_aged.jpg', 'Guangxin_Bao_aged.jpg', 'Chioke_K_Bellamy.jpg', 'Joseph_Miller_Hirsch_aged.jpg', 'Anoush_U_Shah.jpg', 'Joseph_Miller_Hirsch.jpg', 'Sebastian_Andres_Lopez-Ibanez_aged.jpg', 'Joseph_Macon_Barker_aged.jpg', 'Christopher_David_Koontz.jpg', 'Bryce_Charles_Drynan.jpg', 'Jacob_Philip_Rockaway_aged.jpg', 'Wentong_Guo_aged.jpg', 'Anne_M_Perry.jpg', 'Yanghua_Zhang.jpg', 'Qian_Chen_aged.jpg', 'Yue_Zhou.jpg']
In [ ]:
# upload all files in a directory to S3 
wd = os.getcwd()
for file in jpeg_files:
    file_path = f"{wd}/2024_students/{file}"
    base = os.path.splitext(file)[0]
    new_file = base + ".jpg"
    print(file_path, new_file)
    
    s3.upload_file(file_path, bucket, new_file)
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Dongqiao_Tang_aged.jpg Dongqiao_Tang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Hewei_Shen_aged.jpg Hewei_Shen_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jackson_R_Harper_aged.jpg Jackson_R_Harper_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Wei_Tan.jpg Wei_Tan.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Nathanael_Hunter_Kraus.jpg Nathanael_Hunter_Kraus.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Benjamin_Pyung-Hwa_Aikens_aged.jpg Benjamin_Pyung-Hwa_Aikens_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Helen_Kidane_Haile_aged.jpg Helen_Kidane_Haile_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Samantha_O_Brien_aged.jpg Samantha_O_Brien_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yiming_Xu_aged.jpg Yiming_Xu_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Manling_Shi_aged.jpg Manling_Shi_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Meghan_O_Malley.jpg Meghan_O_Malley.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Eric_Mayo.jpg Eric_Mayo.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Haopeng_Liu.jpg Haopeng_Liu.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Wei_Tan_aged.jpg Wei_Tan_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jennifer_Ontiveros-Olivas.jpg Jennifer_Ontiveros-Olivas.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Nicholas_J_Sundberg_aged.jpg Nicholas_J_Sundberg_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Patrick_Ryan_Weimaker.jpg Patrick_Ryan_Weimaker.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Zihe_Liu_aged.jpg Zihe_Liu_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Manling_Shi.jpg Manling_Shi.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Amanda_Renner_Gild_aged.jpg Amanda_Renner_Gild_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/George_Basil_Economus.jpg George_Basil_Economus.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Michelle_Monica_Saikali.jpg Michelle_Monica_Saikali.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Joseph_Macon_Barker.jpg Joseph_Macon_Barker.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kaitlyn_R_Vickers_aged.jpg Kaitlyn_R_Vickers_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Andrea_Chen.jpg Andrea_Chen.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kyle_John_Wiblishauser.jpg Kyle_John_Wiblishauser.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Skylour_Sebastian_Winakur.jpg Skylour_Sebastian_Winakur.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Logan_Trujillo.jpg Logan_Trujillo.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xingyu_Wan.jpg Xingyu_Wan.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Cole_Ritchey_aged.jpg Cole_Ritchey_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jiacheng_Wang_aged.jpg Jiacheng_Wang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Garhett_William_Sessions_aged.jpg Garhett_William_Sessions_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kendall_Ashley_Hilson_aged.jpg Kendall_Ashley_Hilson_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kayla_Marie_Williams_aged.jpg Kayla_Marie_Williams_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kaushik_Rajaram_aged.jpg Kaushik_Rajaram_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Latham_Alexander_Weaver_aged.jpg Latham_Alexander_Weaver_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Trinity_Nicole_Elliott_aged.jpg Trinity_Nicole_Elliott_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Reid_Powers_Walker_aged.jpg Reid_Powers_Walker_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Bingnan_Lei_aged.jpg Bingnan_Lei_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Andrea_Chen_aged.jpg Andrea_Chen_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Savannah_Kayla_Littlejohn_aged.jpg Savannah_Kayla_Littlejohn_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jash_Sanjaybhai_Vachhani_aged.jpg Jash_Sanjaybhai_Vachhani_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Elizabeth_G_Higgins_aged.jpg Elizabeth_G_Higgins_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Estefani_Santiago_Gatica_aged.jpg Estefani_Santiago_Gatica_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Qin_Miao_aged.jpg Qin_Miao_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yue_Zhou_aged.jpg Yue_Zhou_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Niklas_Jozef_Baldis_aged.jpg Niklas_Jozef_Baldis_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Hanshuai_Shi.jpg Hanshuai_Shi.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Edward_Cheongjoun_Hyun_aged.jpg Edward_Cheongjoun_Hyun_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Christopher_Craig_Kenney.jpg Christopher_Craig_Kenney.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiyan_Huang.jpg Xiyan_Huang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Lauren_Elizabeth_Johnson_aged.jpg Lauren_Elizabeth_Johnson_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Angela_Waszkiewicz.jpg Angela_Waszkiewicz.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Tianyu_Cui.jpg Tianyu_Cui.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jiaming_Zhang_aged.jpg Jiaming_Zhang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiaoya_Luo_aged.jpg Xiaoya_Luo_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Nathalie_Lisa_Friedman_aged.jpg Nathalie_Lisa_Friedman_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shenger_Zhou_aged.jpg Shenger_Zhou_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jiahua_Wu.jpg Jiahua_Wu.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Hewei_Shen.jpg Hewei_Shen.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Andrew_Dubois.jpg Andrew_Dubois.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Emmanuel_Thomas_George_Skora.jpg Emmanuel_Thomas_George_Skora.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/John_William_Null_aged.jpg John_William_Null_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Bingyu_Li.jpg Bingyu_Li.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jodie_Elizabeth_Brine.jpg Jodie_Elizabeth_Brine.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Meryl_Criswell_Kaduboski.jpg Meryl_Criswell_Kaduboski.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Amanda_Renner_Gild.jpg Amanda_Renner_Gild.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Michael_Jason_Vejsiri_aged.jpg Michael_Jason_Vejsiri_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Patrick_Ryan_Weimaker_aged.jpg Patrick_Ryan_Weimaker_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Zihe_Liu.jpg Zihe_Liu.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Emmanuel_Thomas_George_Skora_aged.jpg Emmanuel_Thomas_George_Skora_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Daniel_Madden_Sheedy_aged.jpg Daniel_Madden_Sheedy_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Zaul_Alexander_Perez_aged.jpg Zaul_Alexander_Perez_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Lu_Xing_aged.jpg Lu_Xing_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Niklas_Jozef_Baldis.jpg Niklas_Jozef_Baldis.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kendall_Ashley_Hilson.jpg Kendall_Ashley_Hilson.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shenzhe_Lian_aged.jpg Shenzhe_Lian_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Dillon_Hunter_Aryeh_aged.jpg Dillon_Hunter_Aryeh_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Nathanael_Hunter_Kraus_aged.jpg Nathanael_Hunter_Kraus_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Tianyi_Yin_aged.jpg Tianyi_Yin_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Cole_Ritchey.jpg Cole_Ritchey.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Bingnan_Lei.jpg Bingnan_Lei.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Zaul_Alexander_Perez.jpg Zaul_Alexander_Perez.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Max_Koontz.jpg Max_Koontz.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yiming_Xu.jpg Yiming_Xu.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Evan_Anderson_Gilbert.jpg Evan_Anderson_Gilbert.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiyue_Yu_aged.jpg Xiyue_Yu_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Cheuk_Yui_Marcus_Chan_aged.jpg Cheuk_Yui_Marcus_Chan_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shuzhe_Wang_aged.jpg Shuzhe_Wang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Helen_Kidane_Haile.jpg Helen_Kidane_Haile.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Harve_E_Criqui.jpg Harve_E_Criqui.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Khushi_Arya_aged.jpg Khushi_Arya_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Anne_M_Perry_aged.jpg Anne_M_Perry_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jash_Sanjaybhai_Vachhani.jpg Jash_Sanjaybhai_Vachhani.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/George_Basil_Economus_aged.jpg George_Basil_Economus_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Mary_Michele_Troise_aged.jpg Mary_Michele_Troise_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Samantha_O_Brien.jpg Samantha_O_Brien.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Boyan_Wei_aged.jpg Boyan_Wei_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Luying_Huang_aged.jpg Luying_Huang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Meghan_O_Malley_aged.jpg Meghan_O_Malley_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Alfredo_Enrique_Suarez_aged_aged.jpg Alfredo_Enrique_Suarez_aged_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Boyu_Zheng.jpg Boyu_Zheng.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Quinn_Poole.jpg Quinn_Poole.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Daniel_Madden_Sheedy.jpg Daniel_Madden_Sheedy.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Guangxin_Bao.jpg Guangxin_Bao.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Tianyi_Chen.jpg Tianyi_Chen.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Andrew_Dubois_aged.jpg Andrew_Dubois_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Ryan_Marek_Smith.jpg Ryan_Marek_Smith.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Dillon_Hunter_Aryeh.jpg Dillon_Hunter_Aryeh.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Meryl_Criswell_Kaduboski_aged.jpg Meryl_Criswell_Kaduboski_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Chioke_K_Bellamy_aged.jpg Chioke_K_Bellamy_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Marcus_Cole_cooper.jpg Marcus_Cole_cooper.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Harve_E_Criqui_aged.jpg Harve_E_Criqui_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Anthony_X_Ayala.jpg Anthony_X_Ayala.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Nathalie_Lisa_Friedman.jpg Nathalie_Lisa_Friedman.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Bintong_Zhai_aged.jpg Bintong_Zhai_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Quinn_Poole_aged.jpg Quinn_Poole_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Logan_Trujillo_aged.jpg Logan_Trujillo_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Savannah_Kayla_Littlejohn.jpg Savannah_Kayla_Littlejohn.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Christopher_Craig_Kenney_aged.jpg Christopher_Craig_Kenney_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Ryan_Marek_Smith_aged.jpg Ryan_Marek_Smith_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Bryce_Charles_Drynan_aged.jpg Bryce_Charles_Drynan_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Nicolson_Charles_Panos_aged.jpg Nicolson_Charles_Panos_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yuchen_Qin_aged.jpg Yuchen_Qin_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Marcus_Cole_cooper_aged.jpg Marcus_Cole_cooper_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiaoyu_Zong_aged.jpg Xiaoyu_Zong_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shuzhe_Wang.jpg Shuzhe_Wang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Songlin_Liu.jpg Songlin_Liu.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Boyu_Zheng_aged.jpg Boyu_Zheng_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Ruochen_Bao_aged.jpg Ruochen_Bao_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Millie_C_Garrett.jpg Millie_C_Garrett.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Chengzhan_Shen.jpg Chengzhan_Shen.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiaoyang_Zheng.jpg Xiaoyang_Zheng.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Allen_Gail_Smith.jpg Allen_Gail_Smith.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Reid_Powers_Walker.jpg Reid_Powers_Walker.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jeremy_Brian_Nurding_aged.jpg Jeremy_Brian_Nurding_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Qian_Chen.jpg Qian_Chen.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yutong_Ouyang.jpg Yutong_Ouyang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Natalie_Weiner_aged.jpg Natalie_Weiner_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Alfredo_Enrique_Suarez_aged.jpg Alfredo_Enrique_Suarez_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Edward_Cheongjoun_Hyun.jpg Edward_Cheongjoun_Hyun.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Alicia_Rand_Bodoia.jpg Alicia_Rand_Bodoia.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Millie_C_Garrett_aged.jpg Millie_C_Garrett_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Whitney_Joyce_Isbell_aged.jpg Whitney_Joyce_Isbell_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Hangfei_Lyu_aged.jpg Hangfei_Lyu_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Angela_Waszkiewicz_aged.jpg Angela_Waszkiewicz_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shenzhe_Lian.jpg Shenzhe_Lian.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shenghao_Yang.jpg Shenghao_Yang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yilin_Wang_aged.jpg Yilin_Wang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Andrew_Lloyd_Loftis_aged.jpg Andrew_Lloyd_Loftis_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jennifer_Ontiveros-Olivas_aged.jpg Jennifer_Ontiveros-Olivas_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kaushik_Rajaram.jpg Kaushik_Rajaram.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shenger_Zhou.jpg Shenger_Zhou.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yanghua_Zhang_aged.jpg Yanghua_Zhang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Latham_Alexander_Weaver.jpg Latham_Alexander_Weaver.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jacob_Philip_Rockaway.jpg Jacob_Philip_Rockaway.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Khushi_Arya.jpg Khushi_Arya.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Skylour_Sebastian_Winakur_aged.jpg Skylour_Sebastian_Winakur_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jiahao_Ma_aged.jpg Jiahao_Ma_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yutong_Ouyang_aged.jpg Yutong_Ouyang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jeremy_Brian_Nurding.jpg Jeremy_Brian_Nurding.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Raleigh_Coolidge_Conway.jpg Raleigh_Coolidge_Conway.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Andrew_Lloyd_Loftis.jpg Andrew_Lloyd_Loftis.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Ruochen_Bao.jpg Ruochen_Bao.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kaamil_Farooqi.jpg Kaamil_Farooqi.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Songlin_Liu_aged.jpg Songlin_Liu_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jiahao_Ma.jpg Jiahao_Ma.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Garhett_William_Sessions.jpg Garhett_William_Sessions.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Hangfei_Lyu.jpg Hangfei_Lyu.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jackson_R_Harper.jpg Jackson_R_Harper.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Michael_Jason_Vejsiri.jpg Michael_Jason_Vejsiri.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yuchen_Qin.jpg Yuchen_Qin.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiaoya_Luo.jpg Xiaoya_Luo.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Cheuk_Yui_Marcus_Chan.jpg Cheuk_Yui_Marcus_Chan.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Alfredo_Enrique_Suarez.jpg Alfredo_Enrique_Suarez.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Qin_Miao.jpg Qin_Miao.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Elizabeth_G_Higgins.jpg Elizabeth_G_Higgins.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Evan_Anderson_Gilbert_aged.jpg Evan_Anderson_Gilbert_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Sebastian_Andres_Lopez-Ibanez.jpg Sebastian_Andres_Lopez-Ibanez.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Natalie_Weiner.jpg Natalie_Weiner.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jax_Francis_Revfi_aged.jpg Jax_Francis_Revfi_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shanay_Nimish_Sonawala_aged.jpg Shanay_Nimish_Sonawala_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jax_Francis_Revfi.jpg Jax_Francis_Revfi.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Mengyao_Liu_aged.jpg Mengyao_Liu_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kaitlyn_R_Vickers.jpg Kaitlyn_R_Vickers.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jodie_Elizabeth_Brine_aged.jpg Jodie_Elizabeth_Brine_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Anthony_X_Ayala_aged.jpg Anthony_X_Ayala_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shenghao_Yang_aged.jpg Shenghao_Yang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Mary_Martha_Milcoff_aged.jpg Mary_Martha_Milcoff_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Christopher_David_Koontz_aged.jpg Christopher_David_Koontz_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Eric_Mayo_aged.jpg Eric_Mayo_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Michelle_Monica_Saikali_aged.jpg Michelle_Monica_Saikali_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kyle_John_Wiblishauser_aged.jpg Kyle_John_Wiblishauser_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiyan_Huang_aged.jpg Xiyan_Huang_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Anoush_U_Shah_aged.jpg Anoush_U_Shah_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xingyu_Wan_aged.jpg Xingyu_Wan_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Hanshuai_Shi_aged.jpg Hanshuai_Shi_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Lu_Xing.jpg Lu_Xing.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Wentong_Guo.jpg Wentong_Guo.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Raleigh_Coolidge_Conway_aged.jpg Raleigh_Coolidge_Conway_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yilin_Wang.jpg Yilin_Wang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Dongqiao_Tang.jpg Dongqiao_Tang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kayla_Marie_Williams.jpg Kayla_Marie_Williams.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Mengyao_Liu.jpg Mengyao_Liu.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Trinity_Nicole_Elliott.jpg Trinity_Nicole_Elliott.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Siyu_Lin_aged.jpg Siyu_Lin_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Max_Koontz_aged.jpg Max_Koontz_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Shanay_Nimish_Sonawala.jpg Shanay_Nimish_Sonawala.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Luying_Huang.jpg Luying_Huang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Bintong_Zhai.jpg Bintong_Zhai.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Haopeng_Liu_aged.jpg Haopeng_Liu_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Kaamil_Farooqi_aged.jpg Kaamil_Farooqi_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiaoyu_Zong.jpg Xiaoyu_Zong.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Whitney_Joyce_Isbell.jpg Whitney_Joyce_Isbell.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Nicholas_J_Sundberg.jpg Nicholas_J_Sundberg.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/John_William_Null.jpg John_William_Null.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jiacheng_Wang.jpg Jiacheng_Wang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Tianyi_Yin.jpg Tianyi_Yin.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Lauren_Elizabeth_Johnson.jpg Lauren_Elizabeth_Johnson.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Chengzhan_Shen_aged.jpg Chengzhan_Shen_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Estefani_Santiago_Gatica.jpg Estefani_Santiago_Gatica.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Alicia_Rand_Bodoia_aged.jpg Alicia_Rand_Bodoia_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Boyan_Wei.jpg Boyan_Wei.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jiahua_Wu_aged.jpg Jiahua_Wu_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Allen_Gail_Smith_aged.jpg Allen_Gail_Smith_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiaoyang_Zheng_aged.jpg Xiaoyang_Zheng_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Siyu_Lin.jpg Siyu_Lin.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Mary_Michele_Troise.jpg Mary_Michele_Troise.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Nicolson_Charles_Panos.jpg Nicolson_Charles_Panos.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Tianyu_Cui_aged.jpg Tianyu_Cui_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jiaming_Zhang.jpg Jiaming_Zhang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Xiyue_Yu.jpg Xiyue_Yu.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Mary_Martha_Milcoff.jpg Mary_Martha_Milcoff.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Bingyu_Li_aged.jpg Bingyu_Li_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Benjamin_Pyung-Hwa_Aikens.jpg Benjamin_Pyung-Hwa_Aikens.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Tianyi_Chen_aged.jpg Tianyi_Chen_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Guangxin_Bao_aged.jpg Guangxin_Bao_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Chioke_K_Bellamy.jpg Chioke_K_Bellamy.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Joseph_Miller_Hirsch_aged.jpg Joseph_Miller_Hirsch_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Anoush_U_Shah.jpg Anoush_U_Shah.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Joseph_Miller_Hirsch.jpg Joseph_Miller_Hirsch.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Sebastian_Andres_Lopez-Ibanez_aged.jpg Sebastian_Andres_Lopez-Ibanez_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Joseph_Macon_Barker_aged.jpg Joseph_Macon_Barker_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Christopher_David_Koontz.jpg Christopher_David_Koontz.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Bryce_Charles_Drynan.jpg Bryce_Charles_Drynan.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Jacob_Philip_Rockaway_aged.jpg Jacob_Philip_Rockaway_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Wentong_Guo_aged.jpg Wentong_Guo_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Anne_M_Perry.jpg Anne_M_Perry.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yanghua_Zhang.jpg Yanghua_Zhang.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Qian_Chen_aged.jpg Qian_Chen_aged.jpg
g:\My Drive\Fall 2023\Data Management\Final Project/2024_students/Yue_Zhou.jpg Yue_Zhou.jpg
In [ ]:
# Check bucket contents
bucket_contents = s3.list_objects_v2(Bucket=bucket)
bucket_contents['Contents']
Out[ ]:
[{'Key': 'Alfredo_Enrique_Suarez.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 7, tzinfo=tzutc()),
  'ETag': '"68446138235873331923f9bcb2a732b8"',
  'Size': 2066909,
  'StorageClass': 'STANDARD'},
 {'Key': 'Alfredo_Enrique_Suarez_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 41, tzinfo=tzutc()),
  'ETag': '"81acbfc85db3fba1344f4bcbc85910a1"',
  'Size': 108683,
  'StorageClass': 'STANDARD'},
 {'Key': 'Alfredo_Enrique_Suarez_aged_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 16, tzinfo=tzutc()),
  'ETag': '"98f140a6c98c62c9b85f2061e291623b"',
  'Size': 96026,
  'StorageClass': 'STANDARD'},
 {'Key': 'Alicia_Rand_Bodoia.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 42, tzinfo=tzutc()),
  'ETag': '"01059adbfc00f70fca643787b893e031"',
  'Size': 2078833,
  'StorageClass': 'STANDARD'},
 {'Key': 'Alicia_Rand_Bodoia_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 38, tzinfo=tzutc()),
  'ETag': '"63bcb0e7b76abd261218e6a5ddfe50a8"',
  'Size': 33275,
  'StorageClass': 'STANDARD'},
 {'Key': 'Allen_Gail_Smith.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 36, tzinfo=tzutc()),
  'ETag': '"481c84d197f892e9b14766bc5bcac23f"',
  'Size': 2621834,
  'StorageClass': 'STANDARD'},
 {'Key': 'Allen_Gail_Smith_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 39, tzinfo=tzutc()),
  'ETag': '"b055611d3bbb036baaec9d6fcefd7a9c"',
  'Size': 97471,
  'StorageClass': 'STANDARD'},
 {'Key': 'Amanda_Renner_Gild.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 56, tzinfo=tzutc()),
  'ETag': '"b1b2cf99e8d80f401446f676bfe1dc26"',
  'Size': 2109200,
  'StorageClass': 'STANDARD'},
 {'Key': 'Amanda_Renner_Gild_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 31, tzinfo=tzutc()),
  'ETag': '"2e5ee447297f65b7e9bca5833575e6ce"',
  'Size': 121943,
  'StorageClass': 'STANDARD'},
 {'Key': 'Andrea_Chen.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 34, tzinfo=tzutc()),
  'ETag': '"83139693ce3e173901f61d6f80dc2f91"',
  'Size': 1794921,
  'StorageClass': 'STANDARD'},
 {'Key': 'Andrea_Chen_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 41, tzinfo=tzutc()),
  'ETag': '"73d83590503603ccdeaf2ed0fefc2eb4"',
  'Size': 90690,
  'StorageClass': 'STANDARD'},
 {'Key': 'Andrew_Dubois.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 51, tzinfo=tzutc()),
  'ETag': '"a215a9bee6a693b3bd4bf3f901154055"',
  'Size': 1995403,
  'StorageClass': 'STANDARD'},
 {'Key': 'Andrew_Dubois_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 21, tzinfo=tzutc()),
  'ETag': '"1f17a8e2aa34e3a4f5d6f7a2325ef0ed"',
  'Size': 95651,
  'StorageClass': 'STANDARD'},
 {'Key': 'Andrew_Lloyd_Loftis.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 55, tzinfo=tzutc()),
  'ETag': '"1f2b5bbb3a145bbf831b2c587a391a85"',
  'Size': 2327090,
  'StorageClass': 'STANDARD'},
 {'Key': 'Andrew_Lloyd_Loftis_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 46, tzinfo=tzutc()),
  'ETag': '"9204ceba5bed9f46445aa2102ed9c4f3"',
  'Size': 103135,
  'StorageClass': 'STANDARD'},
 {'Key': 'Angela_Waszkiewicz.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 46, tzinfo=tzutc()),
  'ETag': '"0a285c8be855508c3376868d119458fe"',
  'Size': 2217862,
  'StorageClass': 'STANDARD'},
 {'Key': 'Angela_Waszkiewicz_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 44, tzinfo=tzutc()),
  'ETag': '"c5114cda1bf374feb2534c28a0ac747c"',
  'Size': 59368,
  'StorageClass': 'STANDARD'},
 {'Key': 'Anne_M_Perry.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 53, tzinfo=tzutc()),
  'ETag': '"ebeec734b2242d027c8cd031708cf45e"',
  'Size': 2122098,
  'StorageClass': 'STANDARD'},
 {'Key': 'Anne_M_Perry_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 12, tzinfo=tzutc()),
  'ETag': '"bb674475ad7c933677374651560dc177"',
  'Size': 108608,
  'StorageClass': 'STANDARD'},
 {'Key': 'Anoush_U_Shah.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 48, tzinfo=tzutc()),
  'ETag': '"a0d9cc6834a00d7f3df0833ea07abb08"',
  'Size': 2346068,
  'StorageClass': 'STANDARD'},
 {'Key': 'Anoush_U_Shah_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 17, tzinfo=tzutc()),
  'ETag': '"73f84b2a591ae329fdceef05f6e47f3a"',
  'Size': 89691,
  'StorageClass': 'STANDARD'},
 {'Key': 'Anthony_X_Ayala.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 25, tzinfo=tzutc()),
  'ETag': '"993f21440b6bb374206467affda2614c"',
  'Size': 2014408,
  'StorageClass': 'STANDARD'},
 {'Key': 'Anthony_X_Ayala_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 16, tzinfo=tzutc()),
  'ETag': '"daf2945b30aa7a75b695675ff5d4b330"',
  'Size': 99698,
  'StorageClass': 'STANDARD'},
 {'Key': 'Benjamin_Pyung-Hwa_Aikens.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 46, tzinfo=tzutc()),
  'ETag': '"36aac913003b156450de1247bef0a25b"',
  'Size': 2163285,
  'StorageClass': 'STANDARD'},
 {'Key': 'Benjamin_Pyung-Hwa_Aikens_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 23, tzinfo=tzutc()),
  'ETag': '"b244ec07c68819abc4e6daa00dbf35e7"',
  'Size': 86877,
  'StorageClass': 'STANDARD'},
 {'Key': 'Bingnan_Lei.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 3, tzinfo=tzutc()),
  'ETag': '"ffed522ee0e41a455a0dd62c61c4e630"',
  'Size': 2074414,
  'StorageClass': 'STANDARD'},
 {'Key': 'Bingnan_Lei_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 41, tzinfo=tzutc()),
  'ETag': '"86a21a12d08f4d2f401eb0bbfd920134"',
  'Size': 103296,
  'StorageClass': 'STANDARD'},
 {'Key': 'Bingyu_Li.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 53, tzinfo=tzutc()),
  'ETag': '"cfe49dd93ae4f4fff0ee406dc24576e1"',
  'Size': 1953749,
  'StorageClass': 'STANDARD'},
 {'Key': 'Bingyu_Li_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 46, tzinfo=tzutc()),
  'ETag': '"0e718a42457e69d94ae3e6392932aba3"',
  'Size': 101607,
  'StorageClass': 'STANDARD'},
 {'Key': 'Bintong_Zhai.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 28, tzinfo=tzutc()),
  'ETag': '"d8ea7c8ae4049e6e930ac780616899d5"',
  'Size': 2732466,
  'StorageClass': 'STANDARD'},
 {'Key': 'Bintong_Zhai_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 28, tzinfo=tzutc()),
  'ETag': '"6b6410cb06344f480e20f1450e29c05a"',
  'Size': 100318,
  'StorageClass': 'STANDARD'},
 {'Key': 'Boyan_Wei.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 38, tzinfo=tzutc()),
  'ETag': '"df5adfab4ee26d88de7751a641f80d57"',
  'Size': 1894656,
  'StorageClass': 'STANDARD'},
 {'Key': 'Boyan_Wei_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 15, tzinfo=tzutc()),
  'ETag': '"91cbd1874e8cf4e8baf53faa6befc6ff"',
  'Size': 75510,
  'StorageClass': 'STANDARD'},
 {'Key': 'Boyu_Zheng.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 16, tzinfo=tzutc()),
  'ETag': '"8639edc81362a02e138a6ff7cb91a3f0"',
  'Size': 2090271,
  'StorageClass': 'STANDARD'},
 {'Key': 'Boyu_Zheng_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 32, tzinfo=tzutc()),
  'ETag': '"56e1c6841a4dab33af67ad4cb0d3856f"',
  'Size': 81976,
  'StorageClass': 'STANDARD'},
 {'Key': 'Bryce_Charles_Drynan.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 52, tzinfo=tzutc()),
  'ETag': '"4fcc5661d760abdfbf6f3e2e165109c0"',
  'Size': 2071622,
  'StorageClass': 'STANDARD'},
 {'Key': 'Bryce_Charles_Drynan_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 30, tzinfo=tzutc()),
  'ETag': '"6ae1aa6f35351ed951234d0f10f5cdd6"',
  'Size': 79770,
  'StorageClass': 'STANDARD'},
 {'Key': 'Chengzhan_Shen.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 34, tzinfo=tzutc()),
  'ETag': '"9866796419f6f0ac0a3ede674560fb9d"',
  'Size': 2589939,
  'StorageClass': 'STANDARD'},
 {'Key': 'Chengzhan_Shen_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 36, tzinfo=tzutc()),
  'ETag': '"586e8d78380566ab52167bbc8d0458ad"',
  'Size': 79782,
  'StorageClass': 'STANDARD'},
 {'Key': 'Cheuk_Yui_Marcus_Chan.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 6, tzinfo=tzutc()),
  'ETag': '"a6e113514df5b1a2c59935ca0558c118"',
  'Size': 2104699,
  'StorageClass': 'STANDARD'},
 {'Key': 'Cheuk_Yui_Marcus_Chan_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 9, tzinfo=tzutc()),
  'ETag': '"9bdfcf6f14320f5ab01fcdc7111393b9"',
  'Size': 83262,
  'StorageClass': 'STANDARD'},
 {'Key': 'Chioke_K_Bellamy.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 47, tzinfo=tzutc()),
  'ETag': '"e94f63922c259b9fa00320ac73dfa7e9"',
  'Size': 2459800,
  'StorageClass': 'STANDARD'},
 {'Key': 'Chioke_K_Bellamy_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 24, tzinfo=tzutc()),
  'ETag': '"53eeeab4aeee769d69b8ac64a8ec2e43"',
  'Size': 109203,
  'StorageClass': 'STANDARD'},
 {'Key': 'Christopher_Craig_Kenney.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 43, tzinfo=tzutc()),
  'ETag': '"a358d0bc3d7ae414b168230a22698a84"',
  'Size': 2320097,
  'StorageClass': 'STANDARD'},
 {'Key': 'Christopher_Craig_Kenney_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 29, tzinfo=tzutc()),
  'ETag': '"b1965216659c1ef45295c09e0f075d97"',
  'Size': 100177,
  'StorageClass': 'STANDARD'},
 {'Key': 'Christopher_David_Koontz.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 51, tzinfo=tzutc()),
  'ETag': '"781e5050c43cfb7028d6eb7909599734"',
  'Size': 2095533,
  'StorageClass': 'STANDARD'},
 {'Key': 'Christopher_David_Koontz_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 16, tzinfo=tzutc()),
  'ETag': '"d6930e7a2db9291d394a269a41ef64a0"',
  'Size': 94807,
  'StorageClass': 'STANDARD'},
 {'Key': 'Cole_Ritchey.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 2, tzinfo=tzutc()),
  'ETag': '"e24181e1c9624404d23ec904517abcb6"',
  'Size': 1997488,
  'StorageClass': 'STANDARD'},
 {'Key': 'Cole_Ritchey_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 39, tzinfo=tzutc()),
  'ETag': '"a9ae9a75a93970d8d8f1870d6309118a"',
  'Size': 91069,
  'StorageClass': 'STANDARD'},
 {'Key': 'Daniel_Madden_Sheedy.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 18, tzinfo=tzutc()),
  'ETag': '"520f3e41513a91a6399b045847be36b9"',
  'Size': 2275063,
  'StorageClass': 'STANDARD'},
 {'Key': 'Daniel_Madden_Sheedy_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 59, tzinfo=tzutc()),
  'ETag': '"b619033abeae3c9dbd54aa1df95fa4b4"',
  'Size': 83850,
  'StorageClass': 'STANDARD'},
 {'Key': 'Dillon_Hunter_Aryeh.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 23, tzinfo=tzutc()),
  'ETag': '"f4b900155c01ffd45db85df13589c0ee"',
  'Size': 1990026,
  'StorageClass': 'STANDARD'},
 {'Key': 'Dillon_Hunter_Aryeh_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 2, tzinfo=tzutc()),
  'ETag': '"efdd466b9d26a70d123e590f12797f69"',
  'Size': 94652,
  'StorageClass': 'STANDARD'},
 {'Key': 'Dongqiao_Tang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 21, tzinfo=tzutc()),
  'ETag': '"53a1209a054945920739abe4fb582bb4"',
  'Size': 1919195,
  'StorageClass': 'STANDARD'},
 {'Key': 'Dongqiao_Tang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 20, tzinfo=tzutc()),
  'ETag': '"3ebae6142125686e90f1c9fb6dd2bc2d"',
  'Size': 87011,
  'StorageClass': 'STANDARD'},
 {'Key': 'Edward_Cheongjoun_Hyun.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 41, tzinfo=tzutc()),
  'ETag': '"ad9384fd0f5b204e4d915489edef98d9"',
  'Size': 2144024,
  'StorageClass': 'STANDARD'},
 {'Key': 'Edward_Cheongjoun_Hyun_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 43, tzinfo=tzutc()),
  'ETag': '"0efe9d169744a59235f19b11dfb78668"',
  'Size': 80936,
  'StorageClass': 'STANDARD'},
 {'Key': 'Elizabeth_G_Higgins.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 9, tzinfo=tzutc()),
  'ETag': '"7ea186255da7f712335d4f61f9ca1cd2"',
  'Size': 2260307,
  'StorageClass': 'STANDARD'},
 {'Key': 'Elizabeth_G_Higgins_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 41, tzinfo=tzutc()),
  'ETag': '"d07fb40dfec1dd3df005aa7e36557ce6"',
  'Size': 110350,
  'StorageClass': 'STANDARD'},
 {'Key': 'Emmanuel_Thomas_George_Skora.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 52, tzinfo=tzutc()),
  'ETag': '"d585658d02aef6f0568257615e6d481c"',
  'Size': 1922738,
  'StorageClass': 'STANDARD'},
 {'Key': 'Emmanuel_Thomas_George_Skora_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 58, tzinfo=tzutc()),
  'ETag': '"81781ea661d119f6c5738307148fa7af"',
  'Size': 89399,
  'StorageClass': 'STANDARD'},
 {'Key': 'Eric_Mayo.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 25, tzinfo=tzutc()),
  'ETag': '"7a69a2ddac0a4e9bf368be1f34d4595e"',
  'Size': 2322066,
  'StorageClass': 'STANDARD'},
 {'Key': 'Eric_Mayo_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 16, tzinfo=tzutc()),
  'ETag': '"21b08f71025729a1283ac676cb470006"',
  'Size': 100331,
  'StorageClass': 'STANDARD'},
 {'Key': 'Estefani_Santiago_Gatica.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 37, tzinfo=tzutc()),
  'ETag': '"34a665f5bc7fd55de5892cc58b4fe0ae"',
  'Size': 2147703,
  'StorageClass': 'STANDARD'},
 {'Key': 'Estefani_Santiago_Gatica_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 42, tzinfo=tzutc()),
  'ETag': '"6319c1e3e9bed88de4b4c154f6d00eb4"',
  'Size': 107431,
  'StorageClass': 'STANDARD'},
 {'Key': 'Evan_Anderson_Gilbert.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 8, tzinfo=tzutc()),
  'ETag': '"817c11ded2e546badef9b678da190ba4"',
  'Size': 2110633,
  'StorageClass': 'STANDARD'},
 {'Key': 'Evan_Anderson_Gilbert_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 10, tzinfo=tzutc()),
  'ETag': '"9f1519c775e56c328d3d28f3be66680e"',
  'Size': 102209,
  'StorageClass': 'STANDARD'},
 {'Key': 'Garhett_William_Sessions.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 59, tzinfo=tzutc()),
  'ETag': '"64aedf74564ea1e6908c11cc49753c4b"',
  'Size': 1900072,
  'StorageClass': 'STANDARD'},
 {'Key': 'Garhett_William_Sessions_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 40, tzinfo=tzutc()),
  'ETag': '"6ac6c22e46a72b581363ff9c50d94df5"',
  'Size': 90773,
  'StorageClass': 'STANDARD'},
 {'Key': 'George_Basil_Economus.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 31, tzinfo=tzutc()),
  'ETag': '"1b5613cbdd5c30b256f00bacf91a93c6"',
  'Size': 2273260,
  'StorageClass': 'STANDARD'},
 {'Key': 'George_Basil_Economus_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 13, tzinfo=tzutc()),
  'ETag': '"f9bce71201fddfdfbd45f66f4c236195"',
  'Size': 89989,
  'StorageClass': 'STANDARD'},
 {'Key': 'Guangxin_Bao.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 19, tzinfo=tzutc()),
  'ETag': '"79ce7c57183b34d965b0bda730003585"',
  'Size': 1870393,
  'StorageClass': 'STANDARD'},
 {'Key': 'Guangxin_Bao_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 47, tzinfo=tzutc()),
  'ETag': '"18945b565f6c1c3817fb29a12abcb699"',
  'Size': 90786,
  'StorageClass': 'STANDARD'},
 {'Key': 'Hangfei_Lyu.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, tzinfo=tzutc()),
  'ETag': '"05c4ba2163201cfa11f2a2010acfc4b8"',
  'Size': 2312203,
  'StorageClass': 'STANDARD'},
 {'Key': 'Hangfei_Lyu_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 44, tzinfo=tzutc()),
  'ETag': '"636c81e5e4db7bea651b408f6c26a246"',
  'Size': 96882,
  'StorageClass': 'STANDARD'},
 {'Key': 'Hanshuai_Shi.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 42, tzinfo=tzutc()),
  'ETag': '"0ed10ac9c2cb7500bba0ca39c8436f9a"',
  'Size': 1978488,
  'StorageClass': 'STANDARD'},
 {'Key': 'Hanshuai_Shi_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 17, tzinfo=tzutc()),
  'ETag': '"4c5dd907c71c766e99a5a5004b0a5939"',
  'Size': 94174,
  'StorageClass': 'STANDARD'},
 {'Key': 'Haopeng_Liu.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 26, tzinfo=tzutc()),
  'ETag': '"90d02eb05b0bcf8b43efdf22fce6e651"',
  'Size': 2146341,
  'StorageClass': 'STANDARD'},
 {'Key': 'Haopeng_Liu_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 29, tzinfo=tzutc()),
  'ETag': '"9846b557c03294ae66f6991249cccdd4"',
  'Size': 98711,
  'StorageClass': 'STANDARD'},
 {'Key': 'Harve_E_Criqui.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 11, tzinfo=tzutc()),
  'ETag': '"00fa522cb265e41e19f07015c0f1d9c4"',
  'Size': 2453932,
  'StorageClass': 'STANDARD'},
 {'Key': 'Harve_E_Criqui_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 25, tzinfo=tzutc()),
  'ETag': '"794d314819228ab559d8d197333e319a"',
  'Size': 92820,
  'StorageClass': 'STANDARD'},
 {'Key': 'Helen_Kidane_Haile.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 9, tzinfo=tzutc()),
  'ETag': '"1c92e3003dd9bc138031bd8ebfaa3971"',
  'Size': 2536616,
  'StorageClass': 'STANDARD'},
 {'Key': 'Helen_Kidane_Haile_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 23, tzinfo=tzutc()),
  'ETag': '"eb65267dcf25705cfd8c8f6d19c582c5"',
  'Size': 122194,
  'StorageClass': 'STANDARD'},
 {'Key': 'Hewei_Shen.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 50, tzinfo=tzutc()),
  'ETag': '"434a1511544f6e60b84e0d3eb72461f6"',
  'Size': 1933256,
  'StorageClass': 'STANDARD'},
 {'Key': 'Hewei_Shen_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 20, tzinfo=tzutc()),
  'ETag': '"ba7a7b46f73ecdfb6caa50d8dc3a9b25"',
  'Size': 77889,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jackson_R_Harper.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 1, tzinfo=tzutc()),
  'ETag': '"62d623c97ec57ea73a778df4574a4ff0"',
  'Size': 2349818,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jackson_R_Harper_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 21, tzinfo=tzutc()),
  'ETag': '"40d902e0230fb0ea048658f078291935"',
  'Size': 98893,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jacob_Philip_Rockaway.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 50, tzinfo=tzutc()),
  'ETag': '"c7b300548baee6a8e7d04b8a6fc66fb2"',
  'Size': 1909265,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jacob_Philip_Rockaway_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 53, tzinfo=tzutc()),
  'ETag': '"6c49f1fe532091a2e96695112d69f7f7"',
  'Size': 88661,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jash_Sanjaybhai_Vachhani.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 12, tzinfo=tzutc()),
  'ETag': '"45b996addded1be0a51ceac354c03356"',
  'Size': 2147007,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jash_Sanjaybhai_Vachhani_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 41, tzinfo=tzutc()),
  'ETag': '"a8c24cc623e3aeca8f5bf9cec237c29a"',
  'Size': 31224,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jax_Francis_Revfi.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 13, tzinfo=tzutc()),
  'ETag': '"14dd3e31139dfe67efba2d30f306d32e"',
  'Size': 2512677,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jax_Francis_Revfi_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 13, tzinfo=tzutc()),
  'ETag': '"47870776b4da7e660e9b0e9a75fb7022"',
  'Size': 106877,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jennifer_Ontiveros-Olivas.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 27, tzinfo=tzutc()),
  'ETag': '"f1e43db95b2ee66c43c442870222a352"',
  'Size': 2229143,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jennifer_Ontiveros-Olivas_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 47, tzinfo=tzutc()),
  'ETag': '"76f1668b086bd16567f29b3496286c96"',
  'Size': 115337,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jeremy_Brian_Nurding.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 53, tzinfo=tzutc()),
  'ETag': '"5259b2b6ecd3580b17e834fb343dec88"',
  'Size': 1823058,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jeremy_Brian_Nurding_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 39, tzinfo=tzutc()),
  'ETag': '"d28dae5ce7cc4f0a0bbfd0c179f24502"',
  'Size': 87847,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jiacheng_Wang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 33, tzinfo=tzutc()),
  'ETag': '"0b9613ccd8ac6273695ab5797b918b93"',
  'Size': 2154466,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jiacheng_Wang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 39, tzinfo=tzutc()),
  'ETag': '"3bbbdc8dd41567f92b92fe7865b2548f"',
  'Size': 80561,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jiahao_Ma.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 58, tzinfo=tzutc()),
  'ETag': '"5da7c2462e6f4bde8ac0a1ca54cdc1bd"',
  'Size': 1895334,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jiahao_Ma_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 52, tzinfo=tzutc()),
  'ETag': '"a53d3ff94369623e28d7cdccc5fa2182"',
  'Size': 93128,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jiahua_Wu.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 48, tzinfo=tzutc()),
  'ETag': '"10722fa79691a85ec20f46eb45741514"',
  'Size': 1982281,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jiahua_Wu_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 39, tzinfo=tzutc()),
  'ETag': '"bb05058a630a5b9a184489aca6703678"',
  'Size': 93065,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jiaming_Zhang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 43, tzinfo=tzutc()),
  'ETag': '"f60a33d513fd2d300e21ef15aede3ca0"',
  'Size': 1852379,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jiaming_Zhang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 48, tzinfo=tzutc()),
  'ETag': '"7b1f49e641057f12fa0f8b7c4c01d02d"',
  'Size': 96854,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jodie_Elizabeth_Brine.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 54, tzinfo=tzutc()),
  'ETag': '"d3028ad48d751cc62cfab2834ef844c9"',
  'Size': 2383791,
  'StorageClass': 'STANDARD'},
 {'Key': 'Jodie_Elizabeth_Brine_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 16, tzinfo=tzutc()),
  'ETag': '"b7019ec5773c4230b28b2406da055dfb"',
  'Size': 97653,
  'StorageClass': 'STANDARD'},
 {'Key': 'John_William_Null.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 32, tzinfo=tzutc()),
  'ETag': '"e1161046351c262a49d9764f6ad49da3"',
  'Size': 1915436,
  'StorageClass': 'STANDARD'},
 {'Key': 'John_William_Null_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 53, tzinfo=tzutc()),
  'ETag': '"9bf694f43ba7397d2a48a8dd04f349d1"',
  'Size': 96005,
  'StorageClass': 'STANDARD'},
 {'Key': 'Joseph_Macon_Barker.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 33, tzinfo=tzutc()),
  'ETag': '"d931accf84535c885af46cd5ae6c7832"',
  'Size': 2179230,
  'StorageClass': 'STANDARD'},
 {'Key': 'Joseph_Macon_Barker_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 51, tzinfo=tzutc()),
  'ETag': '"2c76abf31c7c47fce7bdd04d0813afa7"',
  'Size': 104596,
  'StorageClass': 'STANDARD'},
 {'Key': 'Joseph_Miller_Hirsch.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 50, tzinfo=tzutc()),
  'ETag': '"ebae9c1ff67de78ffe9ee39179e14d6b"',
  'Size': 2118413,
  'StorageClass': 'STANDARD'},
 {'Key': 'Joseph_Miller_Hirsch_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 48, tzinfo=tzutc()),
  'ETag': '"d92ace7c24cd05102e56eb5ea6ebae0f"',
  'Size': 91270,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kaamil_Farooqi.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 57, tzinfo=tzutc()),
  'ETag': '"5d8173a42e5443ac6f2aac8a8af96973"',
  'Size': 2173410,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kaamil_Farooqi_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 29, tzinfo=tzutc()),
  'ETag': '"30227e0f61cb754cea96bb3a4b3b6cbb"',
  'Size': 96246,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kaitlyn_R_Vickers.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 15, tzinfo=tzutc()),
  'ETag': '"58eed863451740529b7cecf9c3064ec9"',
  'Size': 1994937,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kaitlyn_R_Vickers_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 34, tzinfo=tzutc()),
  'ETag': '"ca146423fdf177106c0262ba66a4c281"',
  'Size': 112294,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kaushik_Rajaram.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 47, tzinfo=tzutc()),
  'ETag': '"8b76441c8c3f9729c9242bc364264120"',
  'Size': 2471873,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kaushik_Rajaram_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 40, tzinfo=tzutc()),
  'ETag': '"da5db571388e2c6139252d4198ef5170"',
  'Size': 104008,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kayla_Marie_Williams.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 22, tzinfo=tzutc()),
  'ETag': '"379ff6604031d3c04a0075f7f0f810c1"',
  'Size': 2037868,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kayla_Marie_Williams_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 40, tzinfo=tzutc()),
  'ETag': '"8becc74f05efd5bbd58061b976fa8cb7"',
  'Size': 91197,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kendall_Ashley_Hilson.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 1, tzinfo=tzutc()),
  'ETag': '"587f9500ea1133f3ed8783fdf93347bc"',
  'Size': 2346204,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kendall_Ashley_Hilson_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 40, tzinfo=tzutc()),
  'ETag': '"147fb1df182f4594a106658ab267544b"',
  'Size': 97196,
  'StorageClass': 'STANDARD'},
 {'Key': 'Khushi_Arya.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 51, tzinfo=tzutc()),
  'ETag': '"daa6a8bf62b3662b5de7dac6badd1f70"',
  'Size': 2249627,
  'StorageClass': 'STANDARD'},
 {'Key': 'Khushi_Arya_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 12, tzinfo=tzutc()),
  'ETag': '"d5f8bae59a9ea279b4212b39a378dcc0"',
  'Size': 112528,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kyle_John_Wiblishauser.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 35, tzinfo=tzutc()),
  'ETag': '"695ffbffa6ac30c12950b6ad2e15d64d"',
  'Size': 1933698,
  'StorageClass': 'STANDARD'},
 {'Key': 'Kyle_John_Wiblishauser_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 17, tzinfo=tzutc()),
  'ETag': '"4e7b19fe6c0d47bfaae29876722e4897"',
  'Size': 83392,
  'StorageClass': 'STANDARD'},
 {'Key': 'Latham_Alexander_Weaver.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 49, tzinfo=tzutc()),
  'ETag': '"3a7875e28d06a699fb008106d52414ed"',
  'Size': 1982180,
  'StorageClass': 'STANDARD'},
 {'Key': 'Latham_Alexander_Weaver_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 40, tzinfo=tzutc()),
  'ETag': '"d4a34b90df8887607dd736da44a69463"',
  'Size': 41087,
  'StorageClass': 'STANDARD'},
 {'Key': 'Lauren_Elizabeth_Johnson.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 35, tzinfo=tzutc()),
  'ETag': '"f6bde6f3d1ace995271dc62cc8744da3"',
  'Size': 2238879,
  'StorageClass': 'STANDARD'},
 {'Key': 'Lauren_Elizabeth_Johnson_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 45, tzinfo=tzutc()),
  'ETag': '"636f34d5a9dbcfa8229169d649ff11be"',
  'Size': 115991,
  'StorageClass': 'STANDARD'},
 {'Key': 'Logan_Trujillo.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 37, tzinfo=tzutc()),
  'ETag': '"808b4b1fe5d19c4ec6e0f1590c22d7eb"',
  'Size': 2176007,
  'StorageClass': 'STANDARD'},
 {'Key': 'Logan_Trujillo_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 28, tzinfo=tzutc()),
  'ETag': '"2910f2b82ebb1738f0ba6ddb6cb7da73"',
  'Size': 103011,
  'StorageClass': 'STANDARD'},
 {'Key': 'Lu_Xing.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 18, tzinfo=tzutc()),
  'ETag': '"f1097d62dcdaee9017b84ee4014f87a7"',
  'Size': 2192892,
  'StorageClass': 'STANDARD'},
 {'Key': 'Lu_Xing_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 59, tzinfo=tzutc()),
  'ETag': '"b372cfc1db6bc191c337e74e8aea3045"',
  'Size': 128952,
  'StorageClass': 'STANDARD'},
 {'Key': 'Luying_Huang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 27, tzinfo=tzutc()),
  'ETag': '"ee323e276b87fa4823443ce1b1b8c9ab"',
  'Size': 1914343,
  'StorageClass': 'STANDARD'},
 {'Key': 'Luying_Huang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 15, tzinfo=tzutc()),
  'ETag': '"d0f2cadf3b24ac97d94966a77ae986e4"',
  'Size': 101146,
  'StorageClass': 'STANDARD'},
 {'Key': 'Manling_Shi.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 30, tzinfo=tzutc()),
  'ETag': '"8180e668eb429d48710d30999f8a900b"',
  'Size': 2146179,
  'StorageClass': 'STANDARD'},
 {'Key': 'Manling_Shi_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 23, tzinfo=tzutc()),
  'ETag': '"bcbc744315dc47677b3bc0727c8cc242"',
  'Size': 82093,
  'StorageClass': 'STANDARD'},
 {'Key': 'Marcus_Cole_cooper.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 24, tzinfo=tzutc()),
  'ETag': '"51e2bcaf97434bd2a980ed04edd08728"',
  'Size': 2041625,
  'StorageClass': 'STANDARD'},
 {'Key': 'Marcus_Cole_cooper_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 30, tzinfo=tzutc()),
  'ETag': '"c8e99bb3bff4a27150e0cd8a230bb367"',
  'Size': 93555,
  'StorageClass': 'STANDARD'},
 {'Key': 'Mary_Martha_Milcoff.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 45, tzinfo=tzutc()),
  'ETag': '"0761f5641359608b95143c5af0e277be"',
  'Size': 2256916,
  'StorageClass': 'STANDARD'},
 {'Key': 'Mary_Martha_Milcoff_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 16, tzinfo=tzutc()),
  'ETag': '"48a392be75fc02ebe26e17029769d8ba"',
  'Size': 129988,
  'StorageClass': 'STANDARD'},
 {'Key': 'Mary_Michele_Troise.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 40, tzinfo=tzutc()),
  'ETag': '"a273e3bbab58cada1574057978a643d4"',
  'Size': 2542718,
  'StorageClass': 'STANDARD'},
 {'Key': 'Mary_Michele_Troise_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 13, tzinfo=tzutc()),
  'ETag': '"f9a3a45b50997ad7dae7b7e61a722fc1"',
  'Size': 101965,
  'StorageClass': 'STANDARD'},
 {'Key': 'Max_Koontz.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 6, tzinfo=tzutc()),
  'ETag': '"fe1f775db517d45fd15ddf8155a047e8"',
  'Size': 2053554,
  'StorageClass': 'STANDARD'},
 {'Key': 'Max_Koontz_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 26, tzinfo=tzutc()),
  'ETag': '"02a19cd2bb11005901ec17aabc3a27e2"',
  'Size': 94328,
  'StorageClass': 'STANDARD'},
 {'Key': 'Meghan_O_Malley.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 24, tzinfo=tzutc()),
  'ETag': '"b4d15a333a2d71d3b568fdab76751517"',
  'Size': 2113224,
  'StorageClass': 'STANDARD'},
 {'Key': 'Meghan_O_Malley_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 16, tzinfo=tzutc()),
  'ETag': '"7ca3b02a3c135bd32c36e1d001289542"',
  'Size': 98107,
  'StorageClass': 'STANDARD'},
 {'Key': 'Mengyao_Liu.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 23, tzinfo=tzutc()),
  'ETag': '"1db6aebb734c2429b72eb972042bb19a"',
  'Size': 2326630,
  'StorageClass': 'STANDARD'},
 {'Key': 'Mengyao_Liu_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 15, tzinfo=tzutc()),
  'ETag': '"791ef35a77aaa1ae3f07f8a374510826"',
  'Size': 117891,
  'StorageClass': 'STANDARD'},
 {'Key': 'Meryl_Criswell_Kaduboski.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 55, tzinfo=tzutc()),
  'ETag': '"061af157306799e80d40e81f2062ce31"',
  'Size': 2168021,
  'StorageClass': 'STANDARD'},
 {'Key': 'Meryl_Criswell_Kaduboski_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 24, tzinfo=tzutc()),
  'ETag': '"3a8755fd069085dd0319333f196839f9"',
  'Size': 122297,
  'StorageClass': 'STANDARD'},
 {'Key': 'Michael_Jason_Vejsiri.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 3, tzinfo=tzutc()),
  'ETag': '"1338b30d7c9e78342c5d92d34d9a6026"',
  'Size': 2183047,
  'StorageClass': 'STANDARD'},
 {'Key': 'Michael_Jason_Vejsiri_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 57, tzinfo=tzutc()),
  'ETag': '"b57c70624980c1be67720193ca4caa33"',
  'Size': 104318,
  'StorageClass': 'STANDARD'},
 {'Key': 'Michelle_Monica_Saikali.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 32, tzinfo=tzutc()),
  'ETag': '"92de7bcc364587d5c7fbfb0b44043163"',
  'Size': 1978447,
  'StorageClass': 'STANDARD'},
 {'Key': 'Michelle_Monica_Saikali_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 17, tzinfo=tzutc()),
  'ETag': '"8588c330b2d084a7b018361280ccf338"',
  'Size': 103277,
  'StorageClass': 'STANDARD'},
 {'Key': 'Millie_C_Garrett.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 33, tzinfo=tzutc()),
  'ETag': '"f72b3e236cd5672c1945c8fe0fac532f"',
  'Size': 2116862,
  'StorageClass': 'STANDARD'},
 {'Key': 'Millie_C_Garrett_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 43, tzinfo=tzutc()),
  'ETag': '"ff68b94ecd2b5fc270d9461efc7ebb25"',
  'Size': 96974,
  'StorageClass': 'STANDARD'},
 {'Key': 'Natalie_Weiner.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 12, tzinfo=tzutc()),
  'ETag': '"28c8ab2edeb3535ab09b5c9b7219b314"',
  'Size': 1921665,
  'StorageClass': 'STANDARD'},
 {'Key': 'Natalie_Weiner_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 41, tzinfo=tzutc()),
  'ETag': '"340fd50217af890568ed312303f9fcb3"',
  'Size': 86524,
  'StorageClass': 'STANDARD'},
 {'Key': 'Nathalie_Lisa_Friedman.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 26, tzinfo=tzutc()),
  'ETag': '"0073128deca023a4ba68b6f20fe46727"',
  'Size': 2618204,
  'StorageClass': 'STANDARD'},
 {'Key': 'Nathalie_Lisa_Friedman_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 48, tzinfo=tzutc()),
  'ETag': '"e75ac7957d77aa874280608dcbfaa92e"',
  'Size': 99079,
  'StorageClass': 'STANDARD'},
 {'Key': 'Nathanael_Hunter_Kraus.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 22, tzinfo=tzutc()),
  'ETag': '"8a14091cd9bd1922b6734118994c4226"',
  'Size': 2013795,
  'StorageClass': 'STANDARD'},
 {'Key': 'Nathanael_Hunter_Kraus_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 2, tzinfo=tzutc()),
  'ETag': '"13c208fd6cd172d18a9d7b5bd385a45b"',
  'Size': 83053,
  'StorageClass': 'STANDARD'},
 {'Key': 'Nicholas_J_Sundberg.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 31, tzinfo=tzutc()),
  'ETag': '"63558f72e9f5f156afccaf4e12f38c1a"',
  'Size': 2175252,
  'StorageClass': 'STANDARD'},
 {'Key': 'Nicholas_J_Sundberg_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 28, tzinfo=tzutc()),
  'ETag': '"da527038592037b40fa2e602c1348b59"',
  'Size': 101370,
  'StorageClass': 'STANDARD'},
 {'Key': 'Nicolson_Charles_Panos.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 42, tzinfo=tzutc()),
  'ETag': '"cc2b7c747c204b8f55ccaba4388ebe9d"',
  'Size': 2035477,
  'StorageClass': 'STANDARD'},
 {'Key': 'Nicolson_Charles_Panos_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 30, tzinfo=tzutc()),
  'ETag': '"91c872daea1c6b0ce90c1bd2e104cbab"',
  'Size': 103221,
  'StorageClass': 'STANDARD'},
 {'Key': 'Niklas_Jozef_Baldis.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 59, tzinfo=tzutc()),
  'ETag': '"18ce28f60649b17f2bd1ed908ab7550b"',
  'Size': 2547913,
  'StorageClass': 'STANDARD'},
 {'Key': 'Niklas_Jozef_Baldis_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 42, tzinfo=tzutc()),
  'ETag': '"9660b5c8241c510dc404dea476514dc1"',
  'Size': 88506,
  'StorageClass': 'STANDARD'},
 {'Key': 'Patrick_Ryan_Weimaker.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 28, tzinfo=tzutc()),
  'ETag': '"637b81655a00618d029332ec0bc7d641"',
  'Size': 2047100,
  'StorageClass': 'STANDARD'},
 {'Key': 'Patrick_Ryan_Weimaker_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 57, tzinfo=tzutc()),
  'ETag': '"eea0a8804421ea38d89358a7d09071c3"',
  'Size': 106319,
  'StorageClass': 'STANDARD'},
 {'Key': 'Qian_Chen.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 39, tzinfo=tzutc()),
  'ETag': '"ecfab4853805e2cbec7f26f009531a85"',
  'Size': 2083844,
  'StorageClass': 'STANDARD'},
 {'Key': 'Qian_Chen_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 55, tzinfo=tzutc()),
  'ETag': '"e79c5793505869483590530537487246"',
  'Size': 108056,
  'StorageClass': 'STANDARD'},
 {'Key': 'Qin_Miao.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 8, tzinfo=tzutc()),
  'ETag': '"df6c4425d0af13fa09cbb6da0ed2469a"',
  'Size': 2726555,
  'StorageClass': 'STANDARD'},
 {'Key': 'Qin_Miao_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 42, tzinfo=tzutc()),
  'ETag': '"e46175a8f5c3bc26202bd93ebd5b12c3"',
  'Size': 89198,
  'StorageClass': 'STANDARD'},
 {'Key': 'Quinn_Poole.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 17, tzinfo=tzutc()),
  'ETag': '"57cbf1531905b68d9b7da40ab0e38a94"',
  'Size': 2275807,
  'StorageClass': 'STANDARD'},
 {'Key': 'Quinn_Poole_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 28, tzinfo=tzutc()),
  'ETag': '"ea3a9dbc66e8bc14980ee93d4b08ae30"',
  'Size': 30110,
  'StorageClass': 'STANDARD'},
 {'Key': 'Raleigh_Coolidge_Conway.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 53, tzinfo=tzutc()),
  'ETag': '"7cbdc3cbe91deb2c60f08620e8316bc0"',
  'Size': 2017561,
  'StorageClass': 'STANDARD'},
 {'Key': 'Raleigh_Coolidge_Conway_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 20, tzinfo=tzutc()),
  'ETag': '"0a7a7ce0c886ba4de2e7b9944568f458"',
  'Size': 92827,
  'StorageClass': 'STANDARD'},
 {'Key': 'Reid_Powers_Walker.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 37, tzinfo=tzutc()),
  'ETag': '"bf4857c9cfd7d276251e584343424933"',
  'Size': 2311219,
  'StorageClass': 'STANDARD'},
 {'Key': 'Reid_Powers_Walker_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 40, tzinfo=tzutc()),
  'ETag': '"3bde6881761f0e7db14f74c78206241e"',
  'Size': 98345,
  'StorageClass': 'STANDARD'},
 {'Key': 'Ruochen_Bao.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 56, tzinfo=tzutc()),
  'ETag': '"f80a408a77b50f7f57e06b53291563cf"',
  'Size': 2278222,
  'StorageClass': 'STANDARD'},
 {'Key': 'Ruochen_Bao_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 33, tzinfo=tzutc()),
  'ETag': '"282a5dbc8f23ae6378fbf1ecc5f86315"',
  'Size': 55966,
  'StorageClass': 'STANDARD'},
 {'Key': 'Ryan_Marek_Smith.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 21, tzinfo=tzutc()),
  'ETag': '"515b05f928135c445b1e09e95a6dcc41"',
  'Size': 2304383,
  'StorageClass': 'STANDARD'},
 {'Key': 'Ryan_Marek_Smith_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 30, tzinfo=tzutc()),
  'ETag': '"5ad8db3f5750151889d65593eb117d23"',
  'Size': 74780,
  'StorageClass': 'STANDARD'},
 {'Key': 'Samantha_O_Brien.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 14, tzinfo=tzutc()),
  'ETag': '"b85ceb98cb3d20130c0e383c330a51eb"',
  'Size': 2556396,
  'StorageClass': 'STANDARD'},
 {'Key': 'Samantha_O_Brien_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 23, tzinfo=tzutc()),
  'ETag': '"be03f5ed9be4dedc426db32037a91cd8"',
  'Size': 113316,
  'StorageClass': 'STANDARD'},
 {'Key': 'Savannah_Kayla_Littlejohn.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 28, tzinfo=tzutc()),
  'ETag': '"38bfbea163ed5e3d4f49b2fdaac25458"',
  'Size': 2259281,
  'StorageClass': 'STANDARD'},
 {'Key': 'Savannah_Kayla_Littlejohn_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 41, tzinfo=tzutc()),
  'ETag': '"078cc12f084ff7af4124c9a3b9dc70fd"',
  'Size': 128226,
  'StorageClass': 'STANDARD'},
 {'Key': 'Sebastian_Andres_Lopez-Ibanez.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 10, tzinfo=tzutc()),
  'ETag': '"ed002fd0d4f09754db14d6959d963608"',
  'Size': 2726675,
  'StorageClass': 'STANDARD'},
 {'Key': 'Sebastian_Andres_Lopez-Ibanez_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 51, tzinfo=tzutc()),
  'ETag': '"a886c5d5b9b9d9a1e2a190d25ffa5daf"',
  'Size': 86094,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shanay_Nimish_Sonawala.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 26, tzinfo=tzutc()),
  'ETag': '"90eca5407ddd54b1cbcf43edae209728"',
  'Size': 1895084,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shanay_Nimish_Sonawala_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 13, tzinfo=tzutc()),
  'ETag': '"0532bc175db3064b1662fe35f1f47d18"',
  'Size': 33065,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shenger_Zhou.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 48, tzinfo=tzutc()),
  'ETag': '"29e91c5a8d7f302965159af69b7ae256"',
  'Size': 2064475,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shenger_Zhou_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 48, tzinfo=tzutc()),
  'ETag': '"7accb6ee5140ce5169f5b2ba41f972b0"',
  'Size': 82052,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shenghao_Yang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 45, tzinfo=tzutc()),
  'ETag': '"f471f5b41bc8fd1fffcd5a4e09aa2d2f"',
  'Size': 2009683,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shenghao_Yang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 16, tzinfo=tzutc()),
  'ETag': '"4445c970fad3e9a810f1d294d7067775"',
  'Size': 94113,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shenzhe_Lian.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 44, tzinfo=tzutc()),
  'ETag': '"763d9e62bd8b06662a2068213d7d8e19"',
  'Size': 2280194,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shenzhe_Lian_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 2, tzinfo=tzutc()),
  'ETag': '"f3a5a1f57a189f65a8b55528c270121f"',
  'Size': 81683,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shuzhe_Wang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 30, tzinfo=tzutc()),
  'ETag': '"f20d12ef64c131248b77a01f5edff3ab"',
  'Size': 2205833,
  'StorageClass': 'STANDARD'},
 {'Key': 'Shuzhe_Wang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 9, tzinfo=tzutc()),
  'ETag': '"5df4f5eb446171be59f503eba8a8651d"',
  'Size': 115144,
  'StorageClass': 'STANDARD'},
 {'Key': 'Siyu_Lin.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 39, tzinfo=tzutc()),
  'ETag': '"413566597c3b8d2b3c09969626ae0899"',
  'Size': 1905892,
  'StorageClass': 'STANDARD'},
 {'Key': 'Siyu_Lin_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 25, tzinfo=tzutc()),
  'ETag': '"5c69620183907f958fdff96f5d9ee105"',
  'Size': 91787,
  'StorageClass': 'STANDARD'},
 {'Key': 'Skylour_Sebastian_Winakur.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 36, tzinfo=tzutc()),
  'ETag': '"9a390b794e58a61233c1d31ab27183e7"',
  'Size': 2041124,
  'StorageClass': 'STANDARD'},
 {'Key': 'Skylour_Sebastian_Winakur_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 52, tzinfo=tzutc()),
  'ETag': '"790dc6a54f1b0a568125fbebfe91feb6"',
  'Size': 110370,
  'StorageClass': 'STANDARD'},
 {'Key': 'Songlin_Liu.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 31, tzinfo=tzutc()),
  'ETag': '"1ec0fa5cf3fe7f4b99c1744d6d2c387b"',
  'Size': 2030537,
  'StorageClass': 'STANDARD'},
 {'Key': 'Songlin_Liu_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 58, tzinfo=tzutc()),
  'ETag': '"2d6f15f14a5daca19526b94d3cfaa739"',
  'Size': 85127,
  'StorageClass': 'STANDARD'},
 {'Key': 'Tianyi_Chen.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 20, tzinfo=tzutc()),
  'ETag': '"f6a4fd41afe52fe8500c92aaf6c77ca7"',
  'Size': 2040767,
  'StorageClass': 'STANDARD'},
 {'Key': 'Tianyi_Chen_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 47, tzinfo=tzutc()),
  'ETag': '"84780989949bf6615487b2afbe591afe"',
  'Size': 105064,
  'StorageClass': 'STANDARD'},
 {'Key': 'Tianyi_Yin.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 34, tzinfo=tzutc()),
  'ETag': '"4dc2fc548ef01070a228b54e4a306214"',
  'Size': 2438866,
  'StorageClass': 'STANDARD'},
 {'Key': 'Tianyi_Yin_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 2, tzinfo=tzutc()),
  'ETag': '"6ee7b59a0ab0e2ee433405cc1c8a2159"',
  'Size': 91817,
  'StorageClass': 'STANDARD'},
 {'Key': 'Tianyu_Cui.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 47, tzinfo=tzutc()),
  'ETag': '"bc37dc239301ffc555799d361fe1de9f"',
  'Size': 2111896,
  'StorageClass': 'STANDARD'},
 {'Key': 'Tianyu_Cui_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 43, tzinfo=tzutc()),
  'ETag': '"761cb4d53114adcb54434fcf869499c0"',
  'Size': 94324,
  'StorageClass': 'STANDARD'},
 {'Key': 'Trinity_Nicole_Elliott.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 24, tzinfo=tzutc()),
  'ETag': '"5305c2f8c11b6479e711354826b0a142"',
  'Size': 2165293,
  'StorageClass': 'STANDARD'},
 {'Key': 'Trinity_Nicole_Elliott_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 40, tzinfo=tzutc()),
  'ETag': '"77afb17fa35f8e0c7549dcf006065882"',
  'Size': 97243,
  'StorageClass': 'STANDARD'},
 {'Key': 'Wei_Tan.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 21, tzinfo=tzutc()),
  'ETag': '"143fdd163248fa04b49bf2a01546d31b"',
  'Size': 2140248,
  'StorageClass': 'STANDARD'},
 {'Key': 'Wei_Tan_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 27, tzinfo=tzutc()),
  'ETag': '"eeba7fcda3336da0d1ce827cdc13f134"',
  'Size': 80922,
  'StorageClass': 'STANDARD'},
 {'Key': 'Wentong_Guo.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 19, tzinfo=tzutc()),
  'ETag': '"d641dba21e6eb1d5118e991fac2f8859"',
  'Size': 2264663,
  'StorageClass': 'STANDARD'},
 {'Key': 'Wentong_Guo_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 53, tzinfo=tzutc()),
  'ETag': '"09feda0d61ab887a474a96122bea8d2c"',
  'Size': 107661,
  'StorageClass': 'STANDARD'},
 {'Key': 'Whitney_Joyce_Isbell.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 30, tzinfo=tzutc()),
  'ETag': '"06377ea11cbd763d56467df2e94a41d0"',
  'Size': 2145070,
  'StorageClass': 'STANDARD'},
 {'Key': 'Whitney_Joyce_Isbell_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 43, tzinfo=tzutc()),
  'ETag': '"ed2b404818db234a8e4820e5a6ed4730"',
  'Size': 109780,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiaoya_Luo.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 5, tzinfo=tzutc()),
  'ETag': '"a3faa269b8a17ec11e5d0503d6d4fbae"',
  'Size': 2115832,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiaoya_Luo_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 48, tzinfo=tzutc()),
  'ETag': '"7f1cfeeb86ef6e8d6ca6b3a728661f22"',
  'Size': 95337,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiaoyang_Zheng.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 35, tzinfo=tzutc()),
  'ETag': '"125cc8f97ad9cb845bb59c1928180cb5"',
  'Size': 2151148,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiaoyang_Zheng_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 39, tzinfo=tzutc()),
  'ETag': '"bcf2273d5e32b09a9243af8794a16df7"',
  'Size': 93562,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiaoyu_Zong.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 29, tzinfo=tzutc()),
  'ETag': '"ccf2990537bd72de705cbf841618eae1"',
  'Size': 2147116,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiaoyu_Zong_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 30, tzinfo=tzutc()),
  'ETag': '"4cc377ff6c6f882a43a23545c4f1c495"',
  'Size': 90890,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xingyu_Wan.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 38, tzinfo=tzutc()),
  'ETag': '"0cee7c66248965744a60a16bf31d9574"',
  'Size': 2065809,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xingyu_Wan_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 17, tzinfo=tzutc()),
  'ETag': '"9311226def19ce282183bc1ee0e75dfc"',
  'Size': 89971,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiyan_Huang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 44, tzinfo=tzutc()),
  'ETag': '"01e464363d1590a83a99d412e33213eb"',
  'Size': 2083904,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiyan_Huang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 17, tzinfo=tzutc()),
  'ETag': '"30088e0a62579df662734522fa9bbd91"',
  'Size': 83090,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiyue_Yu.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 44, tzinfo=tzutc()),
  'ETag': '"f7d2e784dccb6192544857385a5e90ef"',
  'Size': 2172219,
  'StorageClass': 'STANDARD'},
 {'Key': 'Xiyue_Yu_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 9, tzinfo=tzutc()),
  'ETag': '"b228408ce8778de19298bb8cce892f16"',
  'Size': 93780,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yanghua_Zhang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 54, tzinfo=tzutc()),
  'ETag': '"88e1ea56ea432b4ee309bf9382053227"',
  'Size': 2133632,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yanghua_Zhang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 49, tzinfo=tzutc()),
  'ETag': '"2bfbeb0e03b45880017bd5113662f0a2"',
  'Size': 118964,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yilin_Wang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 20, tzinfo=tzutc()),
  'ETag': '"4ee707302e83f45c6c084df53cef10b5"',
  'Size': 2186767,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yilin_Wang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 46, tzinfo=tzutc()),
  'ETag': '"b7d12c6d34d53ffa2aee835aac9e0b36"',
  'Size': 96681,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yiming_Xu.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 7, tzinfo=tzutc()),
  'ETag': '"264a0340c89cf09ae0552ae6e6984d1e"',
  'Size': 2036118,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yiming_Xu_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 23, tzinfo=tzutc()),
  'ETag': '"f1c53ef1d9235c436aab3ff6c571e346"',
  'Size': 92025,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yuchen_Qin.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 4, tzinfo=tzutc()),
  'ETag': '"883ad346e89a10d02bfac199511dcf5b"',
  'Size': 1985047,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yuchen_Qin_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 30, tzinfo=tzutc()),
  'ETag': '"bd6ce7a51a8a58ff8392ac889a3ac875"',
  'Size': 100135,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yue_Zhou.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 57, 55, tzinfo=tzutc()),
  'ETag': '"1ecd243de8578b2f8db4b46fdf4e41d5"',
  'Size': 1991896,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yue_Zhou_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 42, tzinfo=tzutc()),
  'ETag': '"e3d6dedf7f683c693834c496895b219a"',
  'Size': 96660,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yutong_Ouyang.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 40, tzinfo=tzutc()),
  'ETag': '"66f385f8bd5c7a68999d1805aac6b162"',
  'Size': 1881789,
  'StorageClass': 'STANDARD'},
 {'Key': 'Yutong_Ouyang_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 52, tzinfo=tzutc()),
  'ETag': '"72a7c07964e1949ebf0eeaa30ca6f9d5"',
  'Size': 92593,
  'StorageClass': 'STANDARD'},
 {'Key': 'Zaul_Alexander_Perez.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 56, 5, tzinfo=tzutc()),
  'ETag': '"50da80a427a726fc4488899e1421744b"',
  'Size': 2408367,
  'StorageClass': 'STANDARD'},
 {'Key': 'Zaul_Alexander_Perez_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 59, tzinfo=tzutc()),
  'ETag': '"3982d759ad5155aaf16e45d21bcbbf8d"',
  'Size': 91800,
  'StorageClass': 'STANDARD'},
 {'Key': 'Zihe_Liu.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 58, tzinfo=tzutc()),
  'ETag': '"08142c80df6e0d18de6bb35f1a14c4aa"',
  'Size': 1984410,
  'StorageClass': 'STANDARD'},
 {'Key': 'Zihe_Liu_aged.jpg',
  'LastModified': datetime.datetime(2023, 12, 11, 6, 55, 29, tzinfo=tzutc()),
  'ETag': '"c31bac2ba124388f78c4949a679f4adf"',
  'Size': 82969,
  'StorageClass': 'STANDARD'}]
In [ ]:
# List all the jpg files in the new bucket -- 
bucket_contents = s3.list_objects_v2(Bucket=bucket)

# Check if the bucket is not empty
if 'Contents' in bucket_contents:
    for item in bucket_contents['Contents']:
        print(f"  {item.get('Key')}")
  Alfredo_Enrique_Suarez.jpg
  Alfredo_Enrique_Suarez_aged.jpg
  Alfredo_Enrique_Suarez_aged_aged.jpg
  Alicia_Rand_Bodoia.jpg
  Alicia_Rand_Bodoia_aged.jpg
  Allen_Gail_Smith.jpg
  Allen_Gail_Smith_aged.jpg
  Amanda_Renner_Gild.jpg
  Amanda_Renner_Gild_aged.jpg
  Andrea_Chen.jpg
  Andrea_Chen_aged.jpg
  Andrew_Dubois.jpg
  Andrew_Dubois_aged.jpg
  Andrew_Lloyd_Loftis.jpg
  Andrew_Lloyd_Loftis_aged.jpg
  Angela_Waszkiewicz.jpg
  Angela_Waszkiewicz_aged.jpg
  Anne_M_Perry.jpg
  Anne_M_Perry_aged.jpg
  Anoush_U_Shah.jpg
  Anoush_U_Shah_aged.jpg
  Anthony_X_Ayala.jpg
  Anthony_X_Ayala_aged.jpg
  Benjamin_Pyung-Hwa_Aikens.jpg
  Benjamin_Pyung-Hwa_Aikens_aged.jpg
  Bingnan_Lei.jpg
  Bingnan_Lei_aged.jpg
  Bingyu_Li.jpg
  Bingyu_Li_aged.jpg
  Bintong_Zhai.jpg
  Bintong_Zhai_aged.jpg
  Boyan_Wei.jpg
  Boyan_Wei_aged.jpg
  Boyu_Zheng.jpg
  Boyu_Zheng_aged.jpg
  Bryce_Charles_Drynan.jpg
  Bryce_Charles_Drynan_aged.jpg
  Chengzhan_Shen.jpg
  Chengzhan_Shen_aged.jpg
  Cheuk_Yui_Marcus_Chan.jpg
  Cheuk_Yui_Marcus_Chan_aged.jpg
  Chioke_K_Bellamy.jpg
  Chioke_K_Bellamy_aged.jpg
  Christopher_Craig_Kenney.jpg
  Christopher_Craig_Kenney_aged.jpg
  Christopher_David_Koontz.jpg
  Christopher_David_Koontz_aged.jpg
  Cole_Ritchey.jpg
  Cole_Ritchey_aged.jpg
  Daniel_Madden_Sheedy.jpg
  Daniel_Madden_Sheedy_aged.jpg
  Dillon_Hunter_Aryeh.jpg
  Dillon_Hunter_Aryeh_aged.jpg
  Dongqiao_Tang.jpg
  Dongqiao_Tang_aged.jpg
  Edward_Cheongjoun_Hyun.jpg
  Edward_Cheongjoun_Hyun_aged.jpg
  Elizabeth_G_Higgins.jpg
  Elizabeth_G_Higgins_aged.jpg
  Emmanuel_Thomas_George_Skora.jpg
  Emmanuel_Thomas_George_Skora_aged.jpg
  Eric_Mayo.jpg
  Eric_Mayo_aged.jpg
  Estefani_Santiago_Gatica.jpg
  Estefani_Santiago_Gatica_aged.jpg
  Evan_Anderson_Gilbert.jpg
  Evan_Anderson_Gilbert_aged.jpg
  Garhett_William_Sessions.jpg
  Garhett_William_Sessions_aged.jpg
  George_Basil_Economus.jpg
  George_Basil_Economus_aged.jpg
  Guangxin_Bao.jpg
  Guangxin_Bao_aged.jpg
  Hangfei_Lyu.jpg
  Hangfei_Lyu_aged.jpg
  Hanshuai_Shi.jpg
  Hanshuai_Shi_aged.jpg
  Haopeng_Liu.jpg
  Haopeng_Liu_aged.jpg
  Harve_E_Criqui.jpg
  Harve_E_Criqui_aged.jpg
  Helen_Kidane_Haile.jpg
  Helen_Kidane_Haile_aged.jpg
  Hewei_Shen.jpg
  Hewei_Shen_aged.jpg
  Jackson_R_Harper.jpg
  Jackson_R_Harper_aged.jpg
  Jacob_Philip_Rockaway.jpg
  Jacob_Philip_Rockaway_aged.jpg
  Jash_Sanjaybhai_Vachhani.jpg
  Jash_Sanjaybhai_Vachhani_aged.jpg
  Jax_Francis_Revfi.jpg
  Jax_Francis_Revfi_aged.jpg
  Jennifer_Ontiveros-Olivas.jpg
  Jennifer_Ontiveros-Olivas_aged.jpg
  Jeremy_Brian_Nurding.jpg
  Jeremy_Brian_Nurding_aged.jpg
  Jiacheng_Wang.jpg
  Jiacheng_Wang_aged.jpg
  Jiahao_Ma.jpg
  Jiahao_Ma_aged.jpg
  Jiahua_Wu.jpg
  Jiahua_Wu_aged.jpg
  Jiaming_Zhang.jpg
  Jiaming_Zhang_aged.jpg
  Jodie_Elizabeth_Brine.jpg
  Jodie_Elizabeth_Brine_aged.jpg
  John_William_Null.jpg
  John_William_Null_aged.jpg
  Joseph_Macon_Barker.jpg
  Joseph_Macon_Barker_aged.jpg
  Joseph_Miller_Hirsch.jpg
  Joseph_Miller_Hirsch_aged.jpg
  Kaamil_Farooqi.jpg
  Kaamil_Farooqi_aged.jpg
  Kaitlyn_R_Vickers.jpg
  Kaitlyn_R_Vickers_aged.jpg
  Kaushik_Rajaram.jpg
  Kaushik_Rajaram_aged.jpg
  Kayla_Marie_Williams.jpg
  Kayla_Marie_Williams_aged.jpg
  Kendall_Ashley_Hilson.jpg
  Kendall_Ashley_Hilson_aged.jpg
  Khushi_Arya.jpg
  Khushi_Arya_aged.jpg
  Kyle_John_Wiblishauser.jpg
  Kyle_John_Wiblishauser_aged.jpg
  Latham_Alexander_Weaver.jpg
  Latham_Alexander_Weaver_aged.jpg
  Lauren_Elizabeth_Johnson.jpg
  Lauren_Elizabeth_Johnson_aged.jpg
  Logan_Trujillo.jpg
  Logan_Trujillo_aged.jpg
  Lu_Xing.jpg
  Lu_Xing_aged.jpg
  Luying_Huang.jpg
  Luying_Huang_aged.jpg
  Manling_Shi.jpg
  Manling_Shi_aged.jpg
  Marcus_Cole_cooper.jpg
  Marcus_Cole_cooper_aged.jpg
  Mary_Martha_Milcoff.jpg
  Mary_Martha_Milcoff_aged.jpg
  Mary_Michele_Troise.jpg
  Mary_Michele_Troise_aged.jpg
  Max_Koontz.jpg
  Max_Koontz_aged.jpg
  Meghan_O_Malley.jpg
  Meghan_O_Malley_aged.jpg
  Mengyao_Liu.jpg
  Mengyao_Liu_aged.jpg
  Meryl_Criswell_Kaduboski.jpg
  Meryl_Criswell_Kaduboski_aged.jpg
  Michael_Jason_Vejsiri.jpg
  Michael_Jason_Vejsiri_aged.jpg
  Michelle_Monica_Saikali.jpg
  Michelle_Monica_Saikali_aged.jpg
  Millie_C_Garrett.jpg
  Millie_C_Garrett_aged.jpg
  Natalie_Weiner.jpg
  Natalie_Weiner_aged.jpg
  Nathalie_Lisa_Friedman.jpg
  Nathalie_Lisa_Friedman_aged.jpg
  Nathanael_Hunter_Kraus.jpg
  Nathanael_Hunter_Kraus_aged.jpg
  Nicholas_J_Sundberg.jpg
  Nicholas_J_Sundberg_aged.jpg
  Nicolson_Charles_Panos.jpg
  Nicolson_Charles_Panos_aged.jpg
  Niklas_Jozef_Baldis.jpg
  Niklas_Jozef_Baldis_aged.jpg
  Patrick_Ryan_Weimaker.jpg
  Patrick_Ryan_Weimaker_aged.jpg
  Qian_Chen.jpg
  Qian_Chen_aged.jpg
  Qin_Miao.jpg
  Qin_Miao_aged.jpg
  Quinn_Poole.jpg
  Quinn_Poole_aged.jpg
  Raleigh_Coolidge_Conway.jpg
  Raleigh_Coolidge_Conway_aged.jpg
  Reid_Powers_Walker.jpg
  Reid_Powers_Walker_aged.jpg
  Ruochen_Bao.jpg
  Ruochen_Bao_aged.jpg
  Ryan_Marek_Smith.jpg
  Ryan_Marek_Smith_aged.jpg
  Samantha_O_Brien.jpg
  Samantha_O_Brien_aged.jpg
  Savannah_Kayla_Littlejohn.jpg
  Savannah_Kayla_Littlejohn_aged.jpg
  Sebastian_Andres_Lopez-Ibanez.jpg
  Sebastian_Andres_Lopez-Ibanez_aged.jpg
  Shanay_Nimish_Sonawala.jpg
  Shanay_Nimish_Sonawala_aged.jpg
  Shenger_Zhou.jpg
  Shenger_Zhou_aged.jpg
  Shenghao_Yang.jpg
  Shenghao_Yang_aged.jpg
  Shenzhe_Lian.jpg
  Shenzhe_Lian_aged.jpg
  Shuzhe_Wang.jpg
  Shuzhe_Wang_aged.jpg
  Siyu_Lin.jpg
  Siyu_Lin_aged.jpg
  Skylour_Sebastian_Winakur.jpg
  Skylour_Sebastian_Winakur_aged.jpg
  Songlin_Liu.jpg
  Songlin_Liu_aged.jpg
  Tianyi_Chen.jpg
  Tianyi_Chen_aged.jpg
  Tianyi_Yin.jpg
  Tianyi_Yin_aged.jpg
  Tianyu_Cui.jpg
  Tianyu_Cui_aged.jpg
  Trinity_Nicole_Elliott.jpg
  Trinity_Nicole_Elliott_aged.jpg
  Wei_Tan.jpg
  Wei_Tan_aged.jpg
  Wentong_Guo.jpg
  Wentong_Guo_aged.jpg
  Whitney_Joyce_Isbell.jpg
  Whitney_Joyce_Isbell_aged.jpg
  Xiaoya_Luo.jpg
  Xiaoya_Luo_aged.jpg
  Xiaoyang_Zheng.jpg
  Xiaoyang_Zheng_aged.jpg
  Xiaoyu_Zong.jpg
  Xiaoyu_Zong_aged.jpg
  Xingyu_Wan.jpg
  Xingyu_Wan_aged.jpg
  Xiyan_Huang.jpg
  Xiyan_Huang_aged.jpg
  Xiyue_Yu.jpg
  Xiyue_Yu_aged.jpg
  Yanghua_Zhang.jpg
  Yanghua_Zhang_aged.jpg
  Yilin_Wang.jpg
  Yilin_Wang_aged.jpg
  Yiming_Xu.jpg
  Yiming_Xu_aged.jpg
  Yuchen_Qin.jpg
  Yuchen_Qin_aged.jpg
  Yue_Zhou.jpg
  Yue_Zhou_aged.jpg
  Yutong_Ouyang.jpg
  Yutong_Ouyang_aged.jpg
  Zaul_Alexander_Perez.jpg
  Zaul_Alexander_Perez_aged.jpg
  Zihe_Liu.jpg
  Zihe_Liu_aged.jpg

II. Working with AWS Rekognition¶

1. Detect Faces¶

In [ ]:
# Create a function to detect face and some characteristics of the face
def detect_faces(photo, bucket, region):
    
    session = boto3.Session()
    
    client = session.client('rekognition', region_name=region)

    response = client.detect_faces(Image={'S3Object':{'Bucket':bucket,'Name':photo}},
                                   Attributes=['ALL'])

    print('Detected faces for ' + photo)
    for faceDetail in response['FaceDetails']:
        print(f"The detected face is between {faceDetail['AgeRange']['Low']} and {faceDetail['AgeRange']['High']}  years old")

        print('Here are the other attributes:')
        print(json.dumps(faceDetail, indent=4, sort_keys=True))

        # Access predictions for individual face details and print them
        print(f"Gender    : {faceDetail['Gender']}" )
        print(f"Smile     : {faceDetail['Smile']}" )
        print(f"Eyeglasses: {faceDetail['Eyeglasses']}" )
        print(f"Emotions  : {faceDetail['Emotions'][0]}" )

    return len(response['FaceDetails'])

# test the function on Hanshuai's photo
photo='Boyu_Zheng.jpg'
face_count = detect_faces(photo, bucket, region)
print("Faces detected: " + str(face_count))
Detected faces for Boyu_Zheng.jpg
The detected face is between 19 and 27  years old
Here are the other attributes:
{
    "AgeRange": {
        "High": 27,
        "Low": 19
    },
    "Beard": {
        "Confidence": 86.75776672363281,
        "Value": false
    },
    "BoundingBox": {
        "Height": 0.2640996277332306,
        "Left": 0.4397003650665283,
        "Top": 0.2011374682188034,
        "Width": 0.1429976224899292
    },
    "Confidence": 99.99974822998047,
    "Emotions": [
        {
            "Confidence": 95.41015625,
            "Type": "CALM"
        },
        {
            "Confidence": 0.7166544198989868,
            "Type": "HAPPY"
        },
        {
            "Confidence": 0.06914138793945312,
            "Type": "SAD"
        },
        {
            "Confidence": 0.0621795654296875,
            "Type": "CONFUSED"
        },
        {
            "Confidence": 0.025779008865356445,
            "Type": "SURPRISED"
        },
        {
            "Confidence": 0.0011563301086425781,
            "Type": "ANGRY"
        },
        {
            "Confidence": 5.9604644775390625e-06,
            "Type": "DISGUSTED"
        },
        {
            "Confidence": 0.0,
            "Type": "FEAR"
        }
    ],
    "EyeDirection": {
        "Confidence": 99.98881530761719,
        "Pitch": -12.256471633911133,
        "Yaw": -2.290989398956299
    },
    "Eyeglasses": {
        "Confidence": 100.0,
        "Value": true
    },
    "EyesOpen": {
        "Confidence": 98.2108154296875,
        "Value": true
    },
    "FaceOccluded": {
        "Confidence": 99.98217010498047,
        "Value": false
    },
    "Gender": {
        "Confidence": 99.9991683959961,
        "Value": "Male"
    },
    "Landmarks": [
        {
            "Type": "eyeLeft",
            "X": 0.4801853597164154,
            "Y": 0.29861554503440857
        },
        {
            "Type": "eyeRight",
            "X": 0.5443750023841858,
            "Y": 0.3003222644329071
        },
        {
            "Type": "mouthLeft",
            "X": 0.48522311449050903,
            "Y": 0.40067818760871887
        },
        {
            "Type": "mouthRight",
            "X": 0.5386055111885071,
            "Y": 0.4020099341869354
        },
        {
            "Type": "nose",
            "X": 0.5143008232116699,
            "Y": 0.34935909509658813
        },
        {
            "Type": "leftEyeBrowLeft",
            "X": 0.45523348450660706,
            "Y": 0.27657249569892883
        },
        {
            "Type": "leftEyeBrowRight",
            "X": 0.4942696690559387,
            "Y": 0.2678292393684387
        },
        {
            "Type": "leftEyeBrowUp",
            "X": 0.47512757778167725,
            "Y": 0.26287466287612915
        },
        {
            "Type": "rightEyeBrowLeft",
            "X": 0.5313292145729065,
            "Y": 0.26877379417419434
        },
        {
            "Type": "rightEyeBrowRight",
            "X": 0.5673072934150696,
            "Y": 0.27941927313804626
        },
        {
            "Type": "rightEyeBrowUp",
            "X": 0.5497257709503174,
            "Y": 0.2647820711135864
        },
        {
            "Type": "leftEyeLeft",
            "X": 0.4682922959327698,
            "Y": 0.29852062463760376
        },
        {
            "Type": "leftEyeRight",
            "X": 0.492779016494751,
            "Y": 0.2999924421310425
        },
        {
            "Type": "leftEyeUp",
            "X": 0.48002102971076965,
            "Y": 0.29335248470306396
        },
        {
            "Type": "leftEyeDown",
            "X": 0.48035070300102234,
            "Y": 0.30313926935195923
        },
        {
            "Type": "rightEyeLeft",
            "X": 0.5315899848937988,
            "Y": 0.3010297417640686
        },
        {
            "Type": "rightEyeRight",
            "X": 0.555471658706665,
            "Y": 0.3007638454437256
        },
        {
            "Type": "rightEyeUp",
            "X": 0.5445922613143921,
            "Y": 0.295041561126709
        },
        {
            "Type": "rightEyeDown",
            "X": 0.5440212488174438,
            "Y": 0.30477994680404663
        },
        {
            "Type": "noseLeft",
            "X": 0.5004645586013794,
            "Y": 0.3624711036682129
        },
        {
            "Type": "noseRight",
            "X": 0.5244531035423279,
            "Y": 0.3630351424217224
        },
        {
            "Type": "mouthUp",
            "X": 0.512580394744873,
            "Y": 0.3863055408000946
        },
        {
            "Type": "mouthDown",
            "X": 0.5120923519134521,
            "Y": 0.41725146770477295
        },
        {
            "Type": "leftPupil",
            "X": 0.4801853597164154,
            "Y": 0.29861554503440857
        },
        {
            "Type": "rightPupil",
            "X": 0.5443750023841858,
            "Y": 0.3003222644329071
        },
        {
            "Type": "upperJawlineLeft",
            "X": 0.43788036704063416,
            "Y": 0.3065941631793976
        },
        {
            "Type": "midJawlineLeft",
            "X": 0.4508345127105713,
            "Y": 0.41418954730033875
        },
        {
            "Type": "chinBottom",
            "X": 0.5108017325401306,
            "Y": 0.4707484245300293
        },
        {
            "Type": "midJawlineRight",
            "X": 0.5657703876495361,
            "Y": 0.41692402958869934
        },
        {
            "Type": "upperJawlineRight",
            "X": 0.5790319442749023,
            "Y": 0.310108482837677
        }
    ],
    "MouthOpen": {
        "Confidence": 69.37347412109375,
        "Value": false
    },
    "Mustache": {
        "Confidence": 96.23954772949219,
        "Value": false
    },
    "Pose": {
        "Pitch": 7.001773357391357,
        "Roll": 1.6149998903274536,
        "Yaw": 2.82893967628479
    },
    "Quality": {
        "Brightness": 81.99880981445312,
        "Sharpness": 96.61495208740234
    },
    "Smile": {
        "Confidence": 99.47989654541016,
        "Value": false
    },
    "Sunglasses": {
        "Confidence": 100.0,
        "Value": false
    }
}
Gender    : {'Value': 'Male', 'Confidence': 99.9991683959961}
Smile     : {'Value': False, 'Confidence': 99.47989654541016}
Eyeglasses: {'Value': True, 'Confidence': 100.0}
Emotions  : {'Type': 'CALM', 'Confidence': 95.41015625}
Faces detected: 1

2. Compare Faces¶

### Example
In [ ]:
# Create a function to comparing two faces

def compare_faces(bucket, sourceFile, targetFile):
    client = boto3.client('rekognition')

    response = client.compare_faces(SimilarityThreshold=0,
                                    SourceImage={'S3Object': {'Bucket': bucket, 'Name': sourceFile}},
                                    TargetImage={'S3Object': {'Bucket': bucket, 'Name': targetFile}})

    for faceMatch in response['FaceMatches']:
        position = faceMatch['Face']['BoundingBox']
        print(f'face similarity {faceMatch["Similarity"]:.2f}%')
       

    return faceMatch["Similarity"]


# S3 object keys (file names in the bucket)
source_file = 'Boyu_Zheng.jpg'
target_file = 'Boyu_Zheng_aged.jpg'

match_similarity = compare_faces(bucket, source_file, target_file)
face similarity 91.93%
Display two compared images side by side 
In [ ]:
def display_images_side_by_side(bucket, image_key1, image_key2, similarity):
    s3 = boto3.client('s3')

    # Get the images from S3
    def get_image_from_s3(bucket, key):
        response = s3.get_object(Bucket=bucket, Key=key)
        image_data = response['Body'].read()
        return Image.open(BytesIO(image_data))
    
    # Create a new blank image with a size equal to the sum of the widths of the two images
    image_key1 = get_image_from_s3(bucket, image_key1)
    image_key2 = get_image_from_s3(bucket, image_key2)
    
    # resize the image1 to the same size as image2
    image_key1 = image_key1.resize(image_key2.size)

    new_image_width = image_key1.width * 2

    new_image_height = image_key1.height

    new_image = Image.new("RGB", (new_image_width, new_image_height))

    # Paste the first image onto the new image at position (0, 0)

    new_image.paste(image_key1, (0, 0))

    # Paste the second image onto the new image at position (image_key1.width, 0)

    new_image.paste(image_key2, (image_key1.width, 0))

    # Add text to the image
    text = '{} % MATCH'.format(int(similarity))
    font_path = "2024_students/Roboto-Medium.ttf"  # Ensure this path is correct
    font = ImageFont.truetype(font_path, size=48)
    draw = ImageDraw.Draw(new_image)

    # Calculate the text position
    left, top, right, bottom = draw.textbbox((0,0), text, font)
    text_width = right - left
    text_height = bottom - top
    text_x = (new_image_width - text_width)/2
    text_y = (new_image_height - text_height)/2
    # Draw the text over the rectangle
    draw.text((text_x, text_y), text, font=font, fill=(0, 0, 0, 255))
     # Display the image
    display(new_image)

# Example usage

# S3 object keys (file names in the bucket)
image_key1 = 'Boyu_Zheng.jpg'
image_key2 = 'Boyu_Zheng_aged.jpg'

display_images_side_by_side(bucket, image_key1, image_key2, similarity = match_similarity)
No description has been provided for this image

3. Make a collection¶

Some files is not necessary to be uploaded to S3, thus here I create a function to remove them from the bucket

In [ ]:
def delete_file_from_s3(bucket_name, file_key):

    # Create an S3 client
    s3 = boto3.client('s3')

    # Delete the file
    try:
        s3.delete_object(Bucket=bucket_name, Key=file_key)
        print(f"File {file_key} deleted from {bucket_name}")
    except Exception as e:
        print(f"Error occurred: {e}")

# Example usage
bucket_name = 'nam-final-exam-1'
file_key = 'Roboto-Medium.ttf'

delete_file_from_s3(bucket_name, file_key)
File Roboto-Medium.ttf deleted from nam-final-exam-1
In [ ]:
# Add faces to a collection
def create_rekognition_collection(collection_id):
    client = boto3.client('rekognition')
    
    # Check if the collection already exists
    existing_collections = client.list_collections()
    if collection_id in existing_collections['CollectionIds']:
        print(f"Collection {collection_id} already exists.")
        return

    # Create the collection if it doesn't exist
    try:
        client.create_collection(CollectionId=collection_id)
        print(f"Collection {collection_id} created.")
    except client.exceptions.ResourceAlreadyExistsException:
        print(f"Collection {collection_id} already exists.")
        
    

def add_faces_to_collection(bucket, collection_id):
    s3_client = boto3.client('s3')
    rekognition_client = boto3.client('rekognition')

    # List objects in the bucket
    response = s3_client.list_objects_v2(Bucket=bucket)

    if 'Contents' in response:
        for obj in response['Contents']:
            image = obj['Key']
            
            # Index the face(s) in the image
            rekognition_client.index_faces(CollectionId=collection_id,
                                           Image={'S3Object': {'Bucket': bucket, 'Name': image}},
                                           ExternalImageId=image, # this is the name of the person!!! 
                                           MaxFaces=1,
                                           QualityFilter="AUTO",
                                           DetectionAttributes=['ALL'])

            print(f"Added {image} to collection {collection_id}")

# Example usage

collection_id = "student_faces"


create_rekognition_collection(collection_id)
add_faces_to_collection(bucket, collection_id)
Collection student_faces already exists.
Added Alfredo_Enrique_Suarez.jpg to collection student_faces
Added Alfredo_Enrique_Suarez_aged.jpg to collection student_faces
Added Alfredo_Enrique_Suarez_aged_aged.jpg to collection student_faces
Added Alicia_Rand_Bodoia.jpg to collection student_faces
Added Alicia_Rand_Bodoia_aged.jpg to collection student_faces
Added Allen_Gail_Smith.jpg to collection student_faces
Added Allen_Gail_Smith_aged.jpg to collection student_faces
Added Amanda_Renner_Gild.jpg to collection student_faces
Added Amanda_Renner_Gild_aged.jpg to collection student_faces
Added Andrea_Chen.jpg to collection student_faces
Added Andrea_Chen_aged.jpg to collection student_faces
Added Andrew_Dubois.jpg to collection student_faces
Added Andrew_Dubois_aged.jpg to collection student_faces
Added Andrew_Lloyd_Loftis.jpg to collection student_faces
Added Andrew_Lloyd_Loftis_aged.jpg to collection student_faces
Added Angela_Waszkiewicz.jpg to collection student_faces
Added Angela_Waszkiewicz_aged.jpg to collection student_faces
Added Anne_M_Perry.jpg to collection student_faces
Added Anne_M_Perry_aged.jpg to collection student_faces
Added Anoush_U_Shah.jpg to collection student_faces
Added Anoush_U_Shah_aged.jpg to collection student_faces
Added Anthony_X_Ayala.jpg to collection student_faces
Added Anthony_X_Ayala_aged.jpg to collection student_faces
Added Benjamin_Pyung-Hwa_Aikens.jpg to collection student_faces
Added Benjamin_Pyung-Hwa_Aikens_aged.jpg to collection student_faces
Added Bingnan_Lei.jpg to collection student_faces
Added Bingnan_Lei_aged.jpg to collection student_faces
Added Bingyu_Li.jpg to collection student_faces
Added Bingyu_Li_aged.jpg to collection student_faces
Added Bintong_Zhai.jpg to collection student_faces
Added Bintong_Zhai_aged.jpg to collection student_faces
Added Boyan_Wei.jpg to collection student_faces
Added Boyan_Wei_aged.jpg to collection student_faces
Added Boyu_Zheng.jpg to collection student_faces
Added Boyu_Zheng_aged.jpg to collection student_faces
Added Bryce_Charles_Drynan.jpg to collection student_faces
Added Bryce_Charles_Drynan_aged.jpg to collection student_faces
Added Chengzhan_Shen.jpg to collection student_faces
Added Chengzhan_Shen_aged.jpg to collection student_faces
Added Cheuk_Yui_Marcus_Chan.jpg to collection student_faces
Added Cheuk_Yui_Marcus_Chan_aged.jpg to collection student_faces
Added Chioke_K_Bellamy.jpg to collection student_faces
Added Chioke_K_Bellamy_aged.jpg to collection student_faces
Added Christopher_Craig_Kenney.jpg to collection student_faces
Added Christopher_Craig_Kenney_aged.jpg to collection student_faces
Added Christopher_David_Koontz.jpg to collection student_faces
Added Christopher_David_Koontz_aged.jpg to collection student_faces
Added Cole_Ritchey.jpg to collection student_faces
Added Cole_Ritchey_aged.jpg to collection student_faces
Added Daniel_Madden_Sheedy.jpg to collection student_faces
Added Daniel_Madden_Sheedy_aged.jpg to collection student_faces
Added Dillon_Hunter_Aryeh.jpg to collection student_faces
Added Dillon_Hunter_Aryeh_aged.jpg to collection student_faces
Added Dongqiao_Tang.jpg to collection student_faces
Added Dongqiao_Tang_aged.jpg to collection student_faces
Added Edward_Cheongjoun_Hyun.jpg to collection student_faces
Added Edward_Cheongjoun_Hyun_aged.jpg to collection student_faces
Added Elizabeth_G_Higgins.jpg to collection student_faces
Added Elizabeth_G_Higgins_aged.jpg to collection student_faces
Added Emmanuel_Thomas_George_Skora.jpg to collection student_faces
Added Emmanuel_Thomas_George_Skora_aged.jpg to collection student_faces
Added Eric_Mayo.jpg to collection student_faces
Added Eric_Mayo_aged.jpg to collection student_faces
Added Estefani_Santiago_Gatica.jpg to collection student_faces
Added Estefani_Santiago_Gatica_aged.jpg to collection student_faces
Added Evan_Anderson_Gilbert.jpg to collection student_faces
Added Evan_Anderson_Gilbert_aged.jpg to collection student_faces
Added Garhett_William_Sessions.jpg to collection student_faces
Added Garhett_William_Sessions_aged.jpg to collection student_faces
Added George_Basil_Economus.jpg to collection student_faces
Added George_Basil_Economus_aged.jpg to collection student_faces
Added Guangxin_Bao.jpg to collection student_faces
Added Guangxin_Bao_aged.jpg to collection student_faces
Added Hangfei_Lyu.jpg to collection student_faces
Added Hangfei_Lyu_aged.jpg to collection student_faces
Added Hanshuai_Shi.jpg to collection student_faces
Added Hanshuai_Shi_aged.jpg to collection student_faces
Added Haopeng_Liu.jpg to collection student_faces
Added Haopeng_Liu_aged.jpg to collection student_faces
Added Harve_E_Criqui.jpg to collection student_faces
Added Harve_E_Criqui_aged.jpg to collection student_faces
Added Helen_Kidane_Haile.jpg to collection student_faces
Added Helen_Kidane_Haile_aged.jpg to collection student_faces
Added Hewei_Shen.jpg to collection student_faces
Added Hewei_Shen_aged.jpg to collection student_faces
Added Jackson_R_Harper.jpg to collection student_faces
Added Jackson_R_Harper_aged.jpg to collection student_faces
Added Jacob_Philip_Rockaway.jpg to collection student_faces
Added Jacob_Philip_Rockaway_aged.jpg to collection student_faces
Added Jash_Sanjaybhai_Vachhani.jpg to collection student_faces
Added Jash_Sanjaybhai_Vachhani_aged.jpg to collection student_faces
Added Jax_Francis_Revfi.jpg to collection student_faces
Added Jax_Francis_Revfi_aged.jpg to collection student_faces
Added Jennifer_Ontiveros-Olivas.jpg to collection student_faces
Added Jennifer_Ontiveros-Olivas_aged.jpg to collection student_faces
Added Jeremy_Brian_Nurding.jpg to collection student_faces
Added Jeremy_Brian_Nurding_aged.jpg to collection student_faces
Added Jiacheng_Wang.jpg to collection student_faces
Added Jiacheng_Wang_aged.jpg to collection student_faces
Added Jiahao_Ma.jpg to collection student_faces
Added Jiahao_Ma_aged.jpg to collection student_faces
Added Jiahua_Wu.jpg to collection student_faces
Added Jiahua_Wu_aged.jpg to collection student_faces
Added Jiaming_Zhang.jpg to collection student_faces
Added Jiaming_Zhang_aged.jpg to collection student_faces
Added Jodie_Elizabeth_Brine.jpg to collection student_faces
Added Jodie_Elizabeth_Brine_aged.jpg to collection student_faces
Added John_William_Null.jpg to collection student_faces
Added John_William_Null_aged.jpg to collection student_faces
Added Joseph_Macon_Barker.jpg to collection student_faces
Added Joseph_Macon_Barker_aged.jpg to collection student_faces
Added Joseph_Miller_Hirsch.jpg to collection student_faces
Added Joseph_Miller_Hirsch_aged.jpg to collection student_faces
Added Kaamil_Farooqi.jpg to collection student_faces
Added Kaamil_Farooqi_aged.jpg to collection student_faces
Added Kaitlyn_R_Vickers.jpg to collection student_faces
Added Kaitlyn_R_Vickers_aged.jpg to collection student_faces
Added Kaushik_Rajaram.jpg to collection student_faces
Added Kaushik_Rajaram_aged.jpg to collection student_faces
Added Kayla_Marie_Williams.jpg to collection student_faces
Added Kayla_Marie_Williams_aged.jpg to collection student_faces
Added Kendall_Ashley_Hilson.jpg to collection student_faces
Added Kendall_Ashley_Hilson_aged.jpg to collection student_faces
Added Khushi_Arya.jpg to collection student_faces
Added Khushi_Arya_aged.jpg to collection student_faces
Added Kyle_John_Wiblishauser.jpg to collection student_faces
Added Kyle_John_Wiblishauser_aged.jpg to collection student_faces
Added Latham_Alexander_Weaver.jpg to collection student_faces
Added Latham_Alexander_Weaver_aged.jpg to collection student_faces
Added Lauren_Elizabeth_Johnson.jpg to collection student_faces
Added Lauren_Elizabeth_Johnson_aged.jpg to collection student_faces
Added Logan_Trujillo.jpg to collection student_faces
Added Logan_Trujillo_aged.jpg to collection student_faces
Added Lu_Xing.jpg to collection student_faces
Added Lu_Xing_aged.jpg to collection student_faces
Added Luying_Huang.jpg to collection student_faces
Added Luying_Huang_aged.jpg to collection student_faces
Added Manling_Shi.jpg to collection student_faces
Added Manling_Shi_aged.jpg to collection student_faces
Added Marcus_Cole_cooper.jpg to collection student_faces
Added Marcus_Cole_cooper_aged.jpg to collection student_faces
Added Mary_Martha_Milcoff.jpg to collection student_faces
Added Mary_Martha_Milcoff_aged.jpg to collection student_faces
Added Mary_Michele_Troise.jpg to collection student_faces
Added Mary_Michele_Troise_aged.jpg to collection student_faces
Added Max_Koontz.jpg to collection student_faces
Added Max_Koontz_aged.jpg to collection student_faces
Added Meghan_O_Malley.jpg to collection student_faces
Added Meghan_O_Malley_aged.jpg to collection student_faces
Added Mengyao_Liu.jpg to collection student_faces
Added Mengyao_Liu_aged.jpg to collection student_faces
Added Meryl_Criswell_Kaduboski.jpg to collection student_faces
Added Meryl_Criswell_Kaduboski_aged.jpg to collection student_faces
Added Michael_Jason_Vejsiri.jpg to collection student_faces
Added Michael_Jason_Vejsiri_aged.jpg to collection student_faces
Added Michelle_Monica_Saikali.jpg to collection student_faces
Added Michelle_Monica_Saikali_aged.jpg to collection student_faces
Added Millie_C_Garrett.jpg to collection student_faces
Added Millie_C_Garrett_aged.jpg to collection student_faces
Added Natalie_Weiner.jpg to collection student_faces
Added Natalie_Weiner_aged.jpg to collection student_faces
Added Nathalie_Lisa_Friedman.jpg to collection student_faces
Added Nathalie_Lisa_Friedman_aged.jpg to collection student_faces
Added Nathanael_Hunter_Kraus.jpg to collection student_faces
Added Nathanael_Hunter_Kraus_aged.jpg to collection student_faces
Added Nicholas_J_Sundberg.jpg to collection student_faces
Added Nicholas_J_Sundberg_aged.jpg to collection student_faces
Added Nicolson_Charles_Panos.jpg to collection student_faces
Added Nicolson_Charles_Panos_aged.jpg to collection student_faces
Added Niklas_Jozef_Baldis.jpg to collection student_faces
Added Niklas_Jozef_Baldis_aged.jpg to collection student_faces
Added Patrick_Ryan_Weimaker.jpg to collection student_faces
Added Patrick_Ryan_Weimaker_aged.jpg to collection student_faces
Added Qian_Chen.jpg to collection student_faces
Added Qian_Chen_aged.jpg to collection student_faces
Added Qin_Miao.jpg to collection student_faces
Added Qin_Miao_aged.jpg to collection student_faces
Added Quinn_Poole.jpg to collection student_faces
Added Quinn_Poole_aged.jpg to collection student_faces
Added Raleigh_Coolidge_Conway.jpg to collection student_faces
Added Raleigh_Coolidge_Conway_aged.jpg to collection student_faces
Added Reid_Powers_Walker.jpg to collection student_faces
Added Reid_Powers_Walker_aged.jpg to collection student_faces
Added Ruochen_Bao.jpg to collection student_faces
Added Ruochen_Bao_aged.jpg to collection student_faces
Added Ryan_Marek_Smith.jpg to collection student_faces
Added Ryan_Marek_Smith_aged.jpg to collection student_faces
Added Samantha_O_Brien.jpg to collection student_faces
Added Samantha_O_Brien_aged.jpg to collection student_faces
Added Savannah_Kayla_Littlejohn.jpg to collection student_faces
Added Savannah_Kayla_Littlejohn_aged.jpg to collection student_faces
Added Sebastian_Andres_Lopez-Ibanez.jpg to collection student_faces
Added Sebastian_Andres_Lopez-Ibanez_aged.jpg to collection student_faces
Added Shanay_Nimish_Sonawala.jpg to collection student_faces
Added Shanay_Nimish_Sonawala_aged.jpg to collection student_faces
Added Shenger_Zhou.jpg to collection student_faces
Added Shenger_Zhou_aged.jpg to collection student_faces
Added Shenghao_Yang.jpg to collection student_faces
Added Shenghao_Yang_aged.jpg to collection student_faces
Added Shenzhe_Lian.jpg to collection student_faces
Added Shenzhe_Lian_aged.jpg to collection student_faces
Added Shuzhe_Wang.jpg to collection student_faces
Added Shuzhe_Wang_aged.jpg to collection student_faces
Added Siyu_Lin.jpg to collection student_faces
Added Siyu_Lin_aged.jpg to collection student_faces
Added Skylour_Sebastian_Winakur.jpg to collection student_faces
Added Skylour_Sebastian_Winakur_aged.jpg to collection student_faces
Added Songlin_Liu.jpg to collection student_faces
Added Songlin_Liu_aged.jpg to collection student_faces
Added Tianyi_Chen.jpg to collection student_faces
Added Tianyi_Chen_aged.jpg to collection student_faces
Added Tianyi_Yin.jpg to collection student_faces
Added Tianyi_Yin_aged.jpg to collection student_faces
Added Tianyu_Cui.jpg to collection student_faces
Added Tianyu_Cui_aged.jpg to collection student_faces
Added Trinity_Nicole_Elliott.jpg to collection student_faces
Added Trinity_Nicole_Elliott_aged.jpg to collection student_faces
Added Wei_Tan.jpg to collection student_faces
Added Wei_Tan_aged.jpg to collection student_faces
Added Wentong_Guo.jpg to collection student_faces
Added Wentong_Guo_aged.jpg to collection student_faces
Added Whitney_Joyce_Isbell.jpg to collection student_faces
Added Whitney_Joyce_Isbell_aged.jpg to collection student_faces
Added Xiaoya_Luo.jpg to collection student_faces
Added Xiaoya_Luo_aged.jpg to collection student_faces
Added Xiaoyang_Zheng.jpg to collection student_faces
Added Xiaoyang_Zheng_aged.jpg to collection student_faces
Added Xiaoyu_Zong.jpg to collection student_faces
Added Xiaoyu_Zong_aged.jpg to collection student_faces
Added Xingyu_Wan.jpg to collection student_faces
Added Xingyu_Wan_aged.jpg to collection student_faces
Added Xiyan_Huang.jpg to collection student_faces
Added Xiyan_Huang_aged.jpg to collection student_faces
Added Xiyue_Yu.jpg to collection student_faces
Added Xiyue_Yu_aged.jpg to collection student_faces
Added Yanghua_Zhang.jpg to collection student_faces
Added Yanghua_Zhang_aged.jpg to collection student_faces
Added Yilin_Wang.jpg to collection student_faces
Added Yilin_Wang_aged.jpg to collection student_faces
Added Yiming_Xu.jpg to collection student_faces
Added Yiming_Xu_aged.jpg to collection student_faces
Added Yuchen_Qin.jpg to collection student_faces
Added Yuchen_Qin_aged.jpg to collection student_faces
Added Yue_Zhou.jpg to collection student_faces
Added Yue_Zhou_aged.jpg to collection student_faces
Added Yutong_Ouyang.jpg to collection student_faces
Added Yutong_Ouyang_aged.jpg to collection student_faces
Added Zaul_Alexander_Perez.jpg to collection student_faces
Added Zaul_Alexander_Perez_aged.jpg to collection student_faces
Added Zihe_Liu.jpg to collection student_faces
Added Zihe_Liu_aged.jpg to collection student_faces

Search Faces by Image¶

In [ ]:
client=boto3.client('rekognition')

response=client.search_faces_by_image(CollectionId=collection_id,
                            Image={'S3Object':{'Bucket':bucket_name,'Name':'Xiyue_Yu.jpg'}},
                            FaceMatchThreshold=90,
                            MaxFaces=1)


faceMatches=response['FaceMatches']
print ('Matching faces')
for match in faceMatches:
        print ('FaceId:' + match['Face']['FaceId'])
        print ('Similarity: ' + "{:.2f}".format(match['Similarity']) + "%")
Matching faces
FaceId:813d537e-d7f0-47df-bab3-128f85539673
Similarity: 100.00%
In [ ]:
match_file = pd.read_excel("image_name.xlsx")

match_file.head()
Out[ ]:
match_id source_image name target_image expected_match
0 100 Bingyu_Li.jpg Bingyu_Li Bingyu_Li_aged.jpg match
1 101 Whitney_Joyce_Isbell.jpg Whitney_Joyce_Isbell Whitney_Joyce_Isbell_aged.jpg match
2 102 Qian_Chen.jpg Qian_Chen Qian_Chen_aged.jpg match
3 103 Hanshuai_Shi.jpg Hanshuai_Shi Hanshuai_Shi_aged.jpg match
4 104 Ruochen_Bao.jpg Ruochen_Bao Ruochen_Bao_aged.jpg match
In [ ]:
def compare_faces(bucket, sourceFile, targetFile):
    client = boto3.client('rekognition')
    similarity = 0  # Default value in case no face match is found

    try:
        response = client.compare_faces(SimilarityThreshold=80,
                                        SourceImage={'S3Object': {'Bucket': bucket, 'Name': sourceFile}},
                                        TargetImage={'S3Object': {'Bucket': bucket, 'Name': targetFile}})

        # Check if any face matches are found
        if response['FaceMatches']:
            faceMatch = response['FaceMatches'][0]  # Get the first match
            similarity = faceMatch["Similarity"]
    
    except Exception as e:
        print(f"An error occurred: {e}")

    return similarity
In [ ]:
match_file['match_similarity'] = match_file.apply(lambda row: compare_faces(bucket_name, row['source_image'], row['target_image']), axis=1)
# use threshold = 0.6 to determine match or no match
match_file['predicted_match'] = np.where(match_file['match_similarity'] > 35, 'match','no match')
match_file.head()
An error occurred: An error occurred (InvalidParameterException) when calling the CompareFaces operation: Request has invalid parameters
An error occurred: An error occurred (InvalidS3ObjectException) when calling the CompareFaces operation: Unable to get object metadata from S3. Check object key, region and/or access permissions.
An error occurred: An error occurred (InvalidS3ObjectException) when calling the CompareFaces operation: Unable to get object metadata from S3. Check object key, region and/or access permissions.
An error occurred: An error occurred (InvalidS3ObjectException) when calling the CompareFaces operation: Unable to get object metadata from S3. Check object key, region and/or access permissions.
Out[ ]:
match_id source_image name target_image expected_match match_similarity predicted_match
0 100 Bingyu_Li.jpg Bingyu_Li Bingyu_Li_aged.jpg match 98.274345 match
1 101 Whitney_Joyce_Isbell.jpg Whitney_Joyce_Isbell Whitney_Joyce_Isbell_aged.jpg match 97.822098 match
2 102 Qian_Chen.jpg Qian_Chen Qian_Chen_aged.jpg match 0.000000 no match
3 103 Hanshuai_Shi.jpg Hanshuai_Shi Hanshuai_Shi_aged.jpg match 89.793312 match
4 104 Ruochen_Bao.jpg Ruochen_Bao Ruochen_Bao_aged.jpg match 0.000000 no match

III. Model Evaluation¶

In [ ]:
# Calculate confusion matrix
matrix = confusion_matrix(match_file['expected_match'], 
                          match_file['predicted_match'], 
                          labels=["match", "no match"])
In [ ]:
# Calculate confusion matrix
y_true = match_file['expected_match']
y_pred = match_file['predicted_match']
labels = ["match", "no match"]
matrix = confusion_matrix(y_true, y_pred, labels=labels)
# Calculate Specificity
TN = matrix[1][1]
FP = matrix[1][0]
specificity = TN / (TN + FP)

# Calculate Accuracy, Precision and Recall
accuracy = accuracy_score(y_true, y_pred)
precision = precision_score(y_true, y_pred, pos_label="match")
recall = recall_score(y_true, y_pred, pos_label="match")




print("Accuracy:", accuracy)
print("Precision:", precision)
print("Recall:", recall)
print("Specificity:", specificity)
Accuracy: 0.7897727272727273
Precision: 1.0
Recall: 0.7063492063492064
Specificity: 1.0
In [ ]:
# Plotting using seaborn
plt.figure(figsize=(8, 6))
sns.heatmap(matrix, annot=True, fmt="d", xticklabels=labels, yticklabels=labels, cmap="Blues")
plt.title("Confusion Matrix of AWS Rekognition Face Comparison")
plt.ylabel('Actual')
plt.xlabel('Predicted')
plt.show()
No description has been provided for this image
In [ ]:
# a histogram to visualize the distribution of the match_similarity
plt.figure(figsize=(8, 6))
sns.histplot(data=match_file, x="match_similarity", hue="expected_match", kde=False)
plt.title("Match Similarity Distribution of AWS Rekognition Face Comparison")
plt.show()
No description has been provided for this image

IV. Examples Testing Models¶

1. Expected Match¶

For the first expected match comparision, I will examine Boyu face and his aged version

In [ ]:
match_similarity = compare_faces(bucket, 'Boyu_Zheng.jpg', 'Boyu_Zheng_aged.jpg')

print(f"Similarity between the two images is {match_similarity:.2f}%")
Similarity between the two images is 91.93%
In [ ]:
image_key1 = 'Boyu_Zheng.jpg'
image_key2 = 'Boyu_Zheng_aged.jpg'

display_images_side_by_side(bucket, image_key1, image_key2, similarity = match_similarity)
No description has been provided for this image

For the second expected match comparision, I will examine Tianyu_Yin's face and her aged version

In [ ]:
match_similarity = compare_faces(bucket, 'Tianyi_Yin.jpg', 'Tianyi_Yin_aged.jpg')

print(f"Similarity between the two images is {match_similarity:.2f}%")
Similarity between the two images is 0.00%
In [ ]:
# display two imagtes next to each other

image_key1 = 'Tianyi_Yin.jpg'
image_key2 = 'Tianyi_Yin_aged.jpg'

display_images_side_by_side(bucket, image_key1, image_key2, similarity = match_similarity)
No description has been provided for this image

Although this is the same person, the model still fails to recognize the difference, just like in the face_recognition library that we analyze earlier.

2. Expected Non-Match¶

For the first epxected non-match comparision, I will examine the facial comparision between aged Boyu and aged Wei Tan

In [ ]:
# Compare similarity between the two faces
match_similarity = compare_faces(bucket, 'Boyu_Zheng_aged.jpg', 'Wei_Tan_aged.jpg')

print(f"Similarity between the two images is {match_similarity:.2f}%")
Similarity between the two images is 88.54%
In [ ]:
image_key1 = 'Boyu_Zheng_aged.jpg'
image_key2 = 'Wei_Tan_aged.jpg'

display_images_side_by_side(bucket, image_key1, image_key2, similarity = match_similarity)
No description has been provided for this image

Though AWS rekognition's performance from the from confusion matrix was extremely high, especially with a perfect score for specificity, it still falsely identify the difference between these two images.

For teh second expected non-match comparision, I will examine Chnzhan Shen and the aged version of Xiaoya Luo

In [ ]:
# Compare similarity between the two faces
match_similarity = compare_faces(bucket, 'Chengzhan_Shen.jpg', 'Xiaoya_Luo_aged.jpg')

print(f"Similarity between the two images is {match_similarity:.2f}%")
Similarity between the two images is 0.00%
In [ ]:
image_key1 = 'Chengzhan_Shen.jpg'
image_key2 = 'Xiaoya_Luo_aged.jpg'

display_images_side_by_side(bucket, image_key1, image_key2, similarity = match_similarity)
No description has been provided for this image

AWS Rekognition was able to accurately identify that the two images are from two different people, indicating by 0 match similarity